Microsoft Formsの未回答者を確認する方法|Power Automateで自動リマインドまで
はじめに
Microsoft Forms でアンケートや出欠確認を配ったあと、「誰がまだ回答していないのか」を確認して催促したい——事務局担当なら誰もが一度はぶつかる課題です。
先に結論を言うと、Forms 単体には未回答者を一覧表示する機能はありません。
本記事では、まずその事実を実際の画面で確認したうえで、代替策として Power Automate で「配布対象リスト」と「回答済みリスト」を突き合わせ、未回答者だけに自動でリマインドメールを送るフローの作り方を解説します。すべて2026年7月の実機検証に基づく内容です。
- Forms のアンケートで未回答の人を確認したい
- 未回答者への催促メールを手作業で送るのをやめたい
- 毎朝など決まった時間に自動でリマインドを回したい
なお、「回答が来たことを作成者が知る」「回答者に確認メールを自動返信する」方法は別記事で解説しています。本記事は「まだ回答していない人を割り出して催促する」がテーマです。

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

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


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

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


結論:未回答者の確認は自作するしかありません。必要な材料は「配布対象リスト(Excel で自前管理)」と「回答済みリスト」の2つです。
全体設計|2つのフローと2つのExcel
今回作るのは次の構成です。
| 部品 | 役割 |
|---|---|
| 対象者リスト.xlsx | 配布対象の全員(氏名・突合キー・ToEmail 列のテーブル)。自前で管理 |
| 回答済みリスト.xlsx | 回答した人が自動で溜まっていくテーブル |
| フローM(回答収集) | Forms に回答が来るたび、回答者を回答済みリストに1行追加 |
| フローN(突合+リマインド) | 2つのリストを突き合わせ、未回答者だけにメールを送る |

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

そのため、回答済みリストは「新しい応答が送信されるとき」トリガーで回答が来るたびに1行ずつ溜めていく方式にします。フローMの構成は次の3ステップです。
「新しい応答が送信されるとき」(Microsoft Forms)を選び、対象フォームを指定します。
「応答の詳細を取得する」で、トリガーの応答 ID を渡して回答内容を取り出します。動的コンテンツに含まれる回答者情報はメールアドレスのみで、表示名は取得できません。
Excel Online (Business) の「表に行を追加」で、回答者のメールアドレスを回答済みリスト.xlsx のテーブルに書き込みます。



フローN:2つのリストを突合して未回答者を抽出する
ここが本記事の山場です。「対象者リストにいて、回答済みリストにいない人」を抽出します。使うアクションは3つです。
手順1:2つのテーブルを読み込む
Excel Online (Business) の「表内に存在する行を一覧表示」を2つ並べ、対象者リスト.xlsx と回答済みリスト.xlsx のテーブルをそれぞれ読み込みます。
手順2:「選択」で回答済みキーの配列を作る
データ操作の「選択」を追加し、「開始」に回答済みリスト側の value を指定します。マップはテキストモードに切り替えて、次の式を入力します。これで「回答済みの突合キーだけの文字列配列」ができます。
@item()?['突合キー']手順3:「アレイのフィルター処理」で未回答者だけ残す
データ操作の「アレイのフィルター処理」(Filter array)を追加します。「From」には対象者リスト側の value を指定し、条件を詳細設計モード(詳細モード)に切り替えて次の式を入力します。「回答済みキーの配列に、自分の突合キーが含まれていない行だけを残す」という意味です。
@not(contains(body('選択'), item()?['突合キー']))
手動実行してみると、対象者3人のうち回答済みの1人が除外され、未回答の2人(テスト花子・テスト次郎)だけが正しく抽出されました。

未回答者にリマインドメールを送る
抽出した未回答者に Apply to each(それぞれに適用する)+ Outlook「メールの送信 (V2)」でメールを送ります。宛先には次の式を、本文の宛名には氏名の差し込みを使います。
宛先: @items('それぞれに適用する')?['ToEmail']
本文の宛名: @{item()?['氏名']}様
実行すると Apply to each が2回転し、宛名を差し込んだ2通(「テスト花子様」「テスト次郎様」)が受信トレイに届きました。


毎日決まった時間に自動実行する(Recurrence)
手動実行で動作確認できたら、スケジュール実行に切り替えます。注意点として、既存のトリガーを Recurrence に「置き換える」機能はなく、手動トリガーを削除してから「繰り返し(Recurrence)」を新規追加する手順になります(後続のアクションはそのまま保持されます)。
毎日9時に動かす設定は次のとおりです。
- 間隔: 1 / 頻度: 日
- タイムゾーン: (UTC+09:00) 大阪、札幌、東京
- これらの時間に: 9 / これらの分に: 0
- プレビュー表示: 「毎日の9:00時に実行する」


なお、配布リストは今回 Excel で管理しましたが、SharePoint リストで管理する場合も同様の考え方で組めます(今回の実機検証は Excel のみ)。
まとめ
- Forms 単体に未回答者の一覧機能はない。招待リストのエクスポートも不可
- 配布リストは Excel で自前管理し、回答済みリストはトリガーで自動収集(フローM)
- 突合は「選択」+「アレイのフィルター処理」の not contains 式(フローN)
- 宛先の動的コンテンツ選択は二重ループの罠あり。式で item()?[‘ToEmail’] を明示入力
- Recurrence でスケジュール化。テスト後はフローをオフにするのを忘れずに
今回のような Forms × Excel × Outlook の組み合わせも含めて、Power Automateを基礎から順番に動画で学びたい方には Udemy の講座がおすすめです。ノーコードでのフロー構築から Microsoft 365 連携まで、実務に直結する内容を約3時間で学べます(セール期間中は大幅割引になることが多いです)。
回答が来たときの通知や、回答者への自動返信を組みたい方はこちらの記事もどうぞ。








