自動化
PR

Microsoft Formsの未回答者を確認する方法|Power Automateで自動リマインドまで

sanane
記事内に商品プロモーションを含む場合があります

はじめに

Microsoft Forms でアンケートや出欠確認を配ったあと、「誰がまだ回答していないのか」を確認して催促したい——事務局担当なら誰もが一度はぶつかる課題です。

先に結論を言うと、Forms 単体には未回答者を一覧表示する機能はありません

本記事では、まずその事実を実際の画面で確認したうえで、代替策として Power Automate で「配布対象リスト」と「回答済みリスト」を突き合わせ、未回答者だけに自動でリマインドメールを送るフローの作り方を解説します。すべて2026年7月の実機検証に基づく内容です。

こんな人にオススメ
  • Forms のアンケートで未回答の人を確認したい
  • 未回答者への催促メールを手作業で送るのをやめたい
  • 毎朝など決まった時間に自動でリマインドを回したい

なお、「回答が来たことを作成者が知る」「回答者に確認メールを自動返信する」方法は別記事で解説しています。本記事は「まだ回答していない人を割り出して催促する」がテーマです。

あわせて読みたい
Microsoft Formsの回答を通知する方法|自分への通知と回答者への確認メール
Microsoft Formsの回答を通知する方法|自分への通知と回答者への確認メール

Power Automate の基本・できることの実例一覧はこちらです。

あわせて読みたい
Power Automateとは?できること・使い方・始め方を実例40本で解説
Power Automateとは?できること・使い方・始め方を実例40本で解説

Formsに未回答者の一覧機能はない(実機確認)

Forms の「応答」タブで確認できるのは、総回答数・回答にかかった平均時間・各設問の集計などだけです。未回答者の人数も一覧も、どこにも表示されません

Formsの応答タブ。総回答数などの表示のみで未回答者の一覧は存在しない
回答1件時の応答概要。未回答カウントの表示がないことが分かる画面

個別の結果ビューで見られるのも「提出済みの回答者」の一覧のみ。招待した人との差分を出す UI はありません。

Formsの個別結果ビュー。表示されるのは回答済みの人だけで未回答者は出てこない

また、「特定のユーザーが回答できます」を選ぶと people picker で回答者を個別に招待できますが、その招待リストをエクスポート・コピーする機能はありません。つまり招待リストは突合のデータ源としても使えません。

特定のユーザーが回答できますを選んだときのpeople picker画面
特定のユーザー指定の一覧画面。エクスポートやコピーの導線が存在しない

結論:未回答者の確認は自作するしかありません。必要な材料は「配布対象リスト(Excel で自前管理)」と「回答済みリスト」の2つです。

余談ですが、「特定のユーザー」の指定画面で自分を追加すると、選択済みのチップが画面上に表示されないという UI の不具合に検証中遭遇しました。実際には追加に成功しており、キャンセル時の「指定したユーザーが削除されます」ダイアログで裏では保持されていることが確認できます。追加したのに見えない場合も、二重追加せず一度保存して確認するのがおすすめです。

全体設計|2つのフローと2つのExcel

今回作るのは次の構成です。

部品役割
対象者リスト.xlsx配布対象の全員(氏名・突合キー・ToEmail 列のテーブル)。自前で管理
回答済みリスト.xlsx回答した人が自動で溜まっていくテーブル
フローM(回答収集)Forms に回答が来るたび、回答者を回答済みリストに1行追加
フローN(突合+リマインド)2つのリストを突き合わせ、未回答者だけにメールを送る

突合に使う列(突合キー)と送信先の列(ToEmail)は分けて設計するのがおすすめです。テスト中は ToEmail 列を全行自分のアドレスにしておけば、誤送信の心配なく動作確認できます。本番移行時に ToEmail 列を実アドレスに書き換えるだけで済みます。

対象者リストのExcelテーブル。氏名・突合キー・ToEmailの列で3人分を管理

フローM:回答者を自動で記録する

まず「回答済みリスト」を自動で作る仕組みです。ここで知っておきたいのが、Power Automate の Forms コネクタに用意されているアクションは「フォームの詳細を取得」「応答の詳細を取得する」の2つだけだということ。「全回答を一括で取得する」アクションはありません。

Power AutomateのFormsコネクタのアクション一覧。アクションは2つのみ

そのため、回答済みリストは「新しい応答が送信されるとき」トリガーで回答が来るたびに1行ずつ溜めていく方式にします。フローMの構成は次の3ステップです。

トリガーの設定

「新しい応答が送信されるとき」(Microsoft Forms)を選び、対象フォームを指定します。

応答の詳細を取得

「応答の詳細を取得する」で、トリガーの応答 ID を渡して回答内容を取り出します。動的コンテンツに含まれる回答者情報はメールアドレスのみで、表示名は取得できません。

Excelに行を追加

Excel Online (Business) の「表に行を追加」で、回答者のメールアドレスを回答済みリスト.xlsx のテーブルに書き込みます。

応答の詳細を取得するの動的コンテンツ。回答者情報はメールアドレスのみで氏名は出ない
フローM全体像。新しい応答が送信されるとき→応答の詳細を取得→表に行を追加の3ステップ
回答済みリストのExcelテーブルに回答者が1行記録された状態

フローN:2つのリストを突合して未回答者を抽出する

ここが本記事の山場です。「対象者リストにいて、回答済みリストにいない人」を抽出します。使うアクションは3つです。

手順1:2つのテーブルを読み込む

Excel Online (Business) の「表内に存在する行を一覧表示」を2つ並べ、対象者リスト.xlsx と回答済みリスト.xlsx のテーブルをそれぞれ読み込みます。

手順2:「選択」で回答済みキーの配列を作る

データ操作の「選択」を追加し、「開始」に回答済みリスト側の value を指定します。マップはテキストモードに切り替えて、次の式を入力します。これで「回答済みの突合キーだけの文字列配列」ができます。

@item()?['突合キー']

「選択」のマップをキーと値のペアからテキストモードへ切り替えるアイコンは小さくて見落としがちです(マップ欄の右側にあります)。キー/値モードのままだとオブジェクトの配列になってしまい、後段の contains 判定がうまく機能しません。

手順3:「アレイのフィルター処理」で未回答者だけ残す

データ操作の「アレイのフィルター処理」(Filter array)を追加します。「From」には対象者リスト側の value を指定し、条件を詳細設計モード(詳細モード)に切り替えて次の式を入力します。「回答済みキーの配列に、自分の突合キーが含まれていない行だけを残す」という意味です。

@not(contains(body('選択'), item()?['突合キー']))
アレイのフィルター処理の条件設定画面。詳細モードでnot containsの式を入力

手動実行してみると、対象者3人のうち回答済みの1人が除外され、未回答の2人(テスト花子・テスト次郎)だけが正しく抽出されました。

Filter arrayの実行出力。未回答者2件だけが抽出されている

日本語 UI での正式なアクション名は「アレイのフィルター処理」です(「配列のフィルター」で検索しても出てきません)。また、詳細モードの式は初回の「追加」でエラーになっても、再度「追加」を押すと確定できることがあります。

未回答者にリマインドメールを送る

抽出した未回答者に Apply to each(それぞれに適用する)+ Outlook「メールの送信 (V2)」でメールを送ります。宛先には次の式を、本文の宛名には氏名の差し込みを使います。

宛先: @items('それぞれに適用する')?['ToEmail']
本文の宛名: @{item()?['氏名']}様
メールの送信V2の設定画面。宛先にToEmailの式、本文に氏名の差し込みを設定

宛先を動的コンテンツの検索から「ToEmail」で選んではいけません。Filter array の出力ではなく元の対象者リストの ToEmail が選択され、Power Automate が自動で入れ子の Apply to each を生成して、フィルタ前の全員に二重ループで送る誤ったフローになります(検証中に実際に発生)。宛先は fx(式)エディタで item()?[‘ToEmail’] と明示入力してください。

「メールの送信 (V2)」の宛先欄は初期状態が連絡先ピッカーになっていて、動的コンテンツや式を挿入できません。歯車アイコン →「動的なコンテンツを使用する」でテキスト入力に切り替えてから式を入れてください。

実行すると Apply to each が2回転し、宛名を差し込んだ2通(「テスト花子様」「テスト次郎様」)が受信トレイに届きました。

Apply to eachが2回転してメール送信が2回成功した実行結果
受信トレイに届いた2通のリマインドメール。宛名がテスト花子様とテスト次郎様に差し込まれている

毎日決まった時間に自動実行する(Recurrence)

手動実行で動作確認できたら、スケジュール実行に切り替えます。注意点として、既存のトリガーを Recurrence に「置き換える」機能はなく、手動トリガーを削除してから「繰り返し(Recurrence)」を新規追加する手順になります(後続のアクションはそのまま保持されます)。

毎日9時に動かす設定は次のとおりです。

  • 間隔: 1 / 頻度: 日
  • タイムゾーン: (UTC+09:00) 大阪、札幌、東京
  • これらの時間に: 9 / これらの分に: 0
  • プレビュー表示: 「毎日の9:00時に実行する」
Recurrenceトリガーの設定画面。毎日9時・日本時間の設定

タイムゾーンのドロップダウンは検索フィルタが効かないスクロールリストです(「Tokyo」と入力しても絞り込めません)。リストをスクロールして「(UTC+09:00) 大阪、札幌、東京」を探してください。

スケジュールトリガーのフローは放置すると毎日実際にメールを送り続けます。テストが終わったら、本番運用を始めるまでフローをオフにしておきましょう。

検証後にフロー全体を確認しオフに切り替えた状態

なお、配布リストは今回 Excel で管理しましたが、SharePoint リストで管理する場合も同様の考え方で組めます(今回の実機検証は Excel のみ)。

まとめ

  • Forms 単体に未回答者の一覧機能はない。招待リストのエクスポートも不可
  • 配布リストは Excel で自前管理し、回答済みリストはトリガーで自動収集(フローM)
  • 突合は「選択」+「アレイのフィルター処理」の not contains 式(フローN)
  • 宛先の動的コンテンツ選択は二重ループの罠あり。式で item()?[‘ToEmail’] を明示入力
  • Recurrence でスケジュール化。テスト後はフローをオフにするのを忘れずに
Power Automate を体系的に学びたい方へ

今回のような Forms × Excel × Outlook の組み合わせも含めて、Power Automateを基礎から順番に動画で学びたい方には Udemy の講座がおすすめです。ノーコードでのフロー構築から Microsoft 365 連携まで、実務に直結する内容を約3時間で学べます(セール期間中は大幅割引になることが多いです)。

回答が来たときの通知や、回答者への自動返信を組みたい方はこちらの記事もどうぞ。

あわせて読みたい
Microsoft Formsの回答を通知する方法|自分への通知と回答者への確認メール
Microsoft Formsの回答を通知する方法|自分への通知と回答者への確認メール
あわせて読みたい
Microsoft Formsの回答者に自動返信メールを送る方法【Power Automate / 確認メール対応】
Microsoft Formsの回答者に自動返信メールを送る方法【Power Automate / 確認メール対応】
記事URLをコピーしました