← 手順一覧へ戻る
クラウドフローForms

Formsの任意回答が空欄でもTeams通知を分かりやすくする

Formsの用件と任意の希望日をTeamsへ通知します。空文字・null・空白だけの回答を「未指定」にそろえる式と、投稿前に本文を確認する練習例を紹介します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。

実行前に確認

  • Forms・Teamsの接続と対象フォーム・チームへの権限、Workflowsアプリの利用許可、組織のDLPポリシーが必要です。両コネクタは標準ですが、利用できるMicrosoft 365/Power Automateライセンスと管理者設定を確認してください。すべての環境で無料とは限りません。
  • 「未指定」は表示上の補足です。入力を必須にしたい場合はForms側で必須を設定します。この例は回答を拒否したり、実在する日付・業務上の期限を検証したりする処理ではありません。
  • 文字列のnullや不正な日付文字列は空欄と判定せず、そのまま表示します。coalesceだけでは空文字を置き換えられません。詳細取得が失敗・スキップした場合も、この式で成功に変わるわけではありません。
  • 日付が空のままformatDateTimeへ渡すと失敗する場合があります。この例は空欄を補って表示するだけです。日時として扱う場合は別途入力形式・タイムゾーンを確認してください。
  • 通知本文と実行履歴には回答が残ります。個人情報を含む実データで練習せず、必要な項目だけを通知します。再実行による二重投稿は防いでいないため、応答IDと実行履歴を照合します。

1使うトリガーとアクション

  1. トリガー新しい応答が送信されるとき
  2. アクション応答の詳細を取得する
  3. アクション作成DateAnswer:希望日の回答を受け取る
  4. アクション作成DateText:空欄を未指定にする
  5. アクション作成MessagePreview:用件と希望日の本文を確認
  6. アクションチャットまたはチャネルでメッセージを投稿する本文確認後に追加。練習用の標準チャネルへ投稿

図で見る処理のイメージ

概念図

用件「資料の相談」と、任意の希望日を通知する架空の練習です。まず本文確認までで止めます。

  1. 回答取得

    応答IDから用件・希望日を取得

  2. 表示を整える

    希望日が空なら未指定、それ以外は前後空白を除いた文字列

  3. 投稿前の確認

    MessagePreviewの出力を実行履歴で読む

  4. 確認後の通知

    Teams投稿を追加して練習用標準チャネルへ

結果の例

希望日なしの本文例:新しい回答:資料の相談/希望日:未指定。「/」はここでは改行の区切りを表します。

DateAnswerの入力とDateTextの期待値(実行結果ではありません)
入力の例DateTextの出力意味
'2026-10-20'2026-10-20回答あり
''未指定空文字
null(引用符なし)未指定値がない
' '(半角空白3個)未指定空白だけ
'null'(引用符あり)null文字列はそのまま表示

図・表は期待値を説明する例です。実際のPower AutomateフローやTeams通知を実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する7ステップの設定と確認方法
  1. 1

    組織のMicrosoft Formsに「用件」(テキスト・必須)と「希望日」(日付・任意)を用意します。架空の用件「資料の相談」で試し、希望日あり・未入力の2件を用意します。通知を見せてよい参加者だけのTeams標準チャネルを選びます。

  2. 2

    トリガー「新しい応答が送信されるとき」と「応答の詳細を取得する」で同じフォームIDを選びます。後者の応答IDには、トリガーの動的コンテンツ「応答ID」を指定します。質問への回答は詳細取得の動的コンテンツから選びます。

  3. 3

    データ操作の「作成」を追加し、先に名前を DateAnswer に変更します。入力には「応答の詳細を取得する」の「希望日」を挿入します。質問IDを他のフォームからコピーせず、自分の質問を選んでください。

  4. 4

    次の「作成」を DateText と名付け、入力の[式]へ if(empty(trim(string(outputs('DateAnswer')))), '未指定', trim(string(outputs('DateAnswer')))) を入れます。式の前に @ や @{ } を付けません。stringでnullを空文字にし、trimで前後の空白を取り除き、emptyで空かを判定します。日付の解析やタイムゾーン変換は行いません。

  5. 5

    次の「作成」を MessagePreview と名付けます。入力に「新しい回答:」、詳細取得の「用件」、改行、「希望日:」、DateTextの「出力」を順に入れます。最初はここまでで保存し、Teams投稿アクションはまだ追加しません。希望日あり・未入力の回答を送信し、実行履歴のMessagePreviewで本文を確認します。この段階のTeams投稿は0件ですが、Formsの回答と実行履歴は残ります。

  6. 6

    式だけを試す場合は、別の手動クラウドフローに DateAnswer と DateText の「作成」2つだけを同じ名前で置きます。DateAnswerの[式]を順に '2026-10-20'、''、null、' '、'null' に変えて保存・実行し、下の期待値と比べます。nullは引用符なし、文字列のnullは引用符ありです。この練習にはForms・Teamsのアクションを追加しません。

  7. 7

    本文を確認した後、Formsのフローの最後にTeams「チャットまたはチャネルでメッセージを投稿する」を追加します。投稿者=フローボット、投稿先=チャネル、対象チーム・標準チャネルを指定し、メッセージにMessagePreviewの「出力」を挿入します。再度架空の回答を送信すると実際に投稿されます。改行と表示内容を通知先でも確認してから運用します。

Microsoft公式ページで確認する

設定を確認できる公式資料