Formsの任意回答が空欄でもTeams通知を分かりやすくする
Formsの用件と任意の希望日をTeamsへ通知します。空文字・null・空白だけの回答を「未指定」にそろえる式と、投稿前に本文を確認する練習例を紹介します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。
実行前に確認
- Forms・Teamsの接続と対象フォーム・チームへの権限、Workflowsアプリの利用許可、組織のDLPポリシーが必要です。両コネクタは標準ですが、利用できるMicrosoft 365/Power Automateライセンスと管理者設定を確認してください。すべての環境で無料とは限りません。
- 「未指定」は表示上の補足です。入力を必須にしたい場合はForms側で必須を設定します。この例は回答を拒否したり、実在する日付・業務上の期限を検証したりする処理ではありません。
- 文字列のnullや不正な日付文字列は空欄と判定せず、そのまま表示します。coalesceだけでは空文字を置き換えられません。詳細取得が失敗・スキップした場合も、この式で成功に変わるわけではありません。
- 日付が空のままformatDateTimeへ渡すと失敗する場合があります。この例は空欄を補って表示するだけです。日時として扱う場合は別途入力形式・タイムゾーンを確認してください。
- 通知本文と実行履歴には回答が残ります。個人情報を含む実データで練習せず、必要な項目だけを通知します。再実行による二重投稿は防いでいないため、応答IDと実行履歴を照合します。
1使うトリガーとアクション
- トリガー新しい応答が送信されるとき
- アクション応答の詳細を取得する
- アクション作成DateAnswer:希望日の回答を受け取る
- アクション作成DateText:空欄を未指定にする
- アクション作成MessagePreview:用件と希望日の本文を確認
- アクションチャットまたはチャネルでメッセージを投稿する本文確認後に追加。練習用の標準チャネルへ投稿
図で見る処理のイメージ
概念図用件「資料の相談」と、任意の希望日を通知する架空の練習です。まず本文確認までで止めます。
回答取得
応答IDから用件・希望日を取得
表示を整える
希望日が空なら未指定、それ以外は前後空白を除いた文字列
投稿前の確認
MessagePreviewの出力を実行履歴で読む
確認後の通知
Teams投稿を追加して練習用標準チャネルへ
希望日なしの本文例:新しい回答:資料の相談/希望日:未指定。「/」はここでは改行の区切りを表します。
| 入力の例 | DateTextの出力 | 意味 |
|---|---|---|
| '2026-10-20' | 2026-10-20 | 回答あり |
| '' | 未指定 | 空文字 |
| null(引用符なし) | 未指定 | 値がない |
| ' '(半角空白3個) | 未指定 | 空白だけ |
| 'null'(引用符あり) | null | 文字列はそのまま表示 |
図・表は期待値を説明する例です。実際のPower AutomateフローやTeams通知を実行して確認した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する7ステップの設定と確認方法
- 1
組織のMicrosoft Formsに「用件」(テキスト・必須)と「希望日」(日付・任意)を用意します。架空の用件「資料の相談」で試し、希望日あり・未入力の2件を用意します。通知を見せてよい参加者だけのTeams標準チャネルを選びます。
- 2
トリガー「新しい応答が送信されるとき」と「応答の詳細を取得する」で同じフォームIDを選びます。後者の応答IDには、トリガーの動的コンテンツ「応答ID」を指定します。質問への回答は詳細取得の動的コンテンツから選びます。
- 3
データ操作の「作成」を追加し、先に名前を DateAnswer に変更します。入力には「応答の詳細を取得する」の「希望日」を挿入します。質問IDを他のフォームからコピーせず、自分の質問を選んでください。
- 4
次の「作成」を DateText と名付け、入力の[式]へ if(empty(trim(string(outputs('DateAnswer')))), '未指定', trim(string(outputs('DateAnswer')))) を入れます。式の前に @ や @{ } を付けません。stringでnullを空文字にし、trimで前後の空白を取り除き、emptyで空かを判定します。日付の解析やタイムゾーン変換は行いません。
- 5
次の「作成」を MessagePreview と名付けます。入力に「新しい回答:」、詳細取得の「用件」、改行、「希望日:」、DateTextの「出力」を順に入れます。最初はここまでで保存し、Teams投稿アクションはまだ追加しません。希望日あり・未入力の回答を送信し、実行履歴のMessagePreviewで本文を確認します。この段階のTeams投稿は0件ですが、Formsの回答と実行履歴は残ります。
- 6
式だけを試す場合は、別の手動クラウドフローに DateAnswer と DateText の「作成」2つだけを同じ名前で置きます。DateAnswerの[式]を順に '2026-10-20'、''、null、' '、'null' に変えて保存・実行し、下の期待値と比べます。nullは引用符なし、文字列のnullは引用符ありです。この練習にはForms・Teamsのアクションを追加しません。
- 7
本文を確認した後、Formsのフローの最後にTeams「チャットまたはチャネルでメッセージを投稿する」を追加します。投稿者=フローボット、投稿先=チャネル、対象チーム・標準チャネルを指定し、メッセージにMessagePreviewの「出力」を挿入します。再度架空の回答を送信すると実際に投稿されます。改行と表示内容を通知先でも確認してから運用します。
- 対象環境
- Power Automate クラウドフロー
- 更新日
- 2026-10-10