Power Automateでメール送信結果をExcelに記録する方法

Power Automate(クラウド版)でExcelの送信リストをもとにメールを自動送信し、結果をD列に「成功」「失敗」で記録する手順を、実際の画面つきで解説します。宛先ごとに結果が残るので、どのメールが送れなかったかをExcelで確認できます。

Power Automateでメール送信の結果をExcelに自動記録する方法を紹介するサムネイル。Excelの送信リストのD列に、成功と失敗が記録された画面

対象OS Windows 10・11(ブラウザーで操作)

メールを送ったあと、どの宛先に送れたか分からない——結果をExcelに残す

一斉送信のフローを動かしたあと、「どの宛先に送れたのか」「失敗したのはどれか」を確認する場面はないでしょうか。実行履歴を1件ずつ開いて確認していると、件数が増えるほど手間がかかります。

送信結果をExcelの送信リストに書き戻しておけば、D列を見るだけで成功・失敗を確認できます。実行履歴を開いて確認する作業が1件あたり約30秒かかるとすると、100件の確認で約50分かかります。結果をExcelに残しておけば、この確認を、表を見る数分に短縮できます(筆者の見積もりです)。

この記事では、実際に試した手順を、つまずいた点も含めて紹介します。宛先・件名・本文・結果の4列の表をもとにメールを送信し、成功・失敗を宛先ごとにD列へ記録します。

始める前に:確認した環境と、用意するExcelの表

Excelからメールを自動送信する基本のフローは、Power AutomateでOutlookのメールを一斉自動送信する方法|Excelリストでまとめて送るで解説しています。この記事は、その続きとして、送信結果をExcelに記録する部分に絞って紹介します。

Excelファイルは、OneDrive for Businessに保存します。表の名前は「送信リスト」とし、次の4列を用意します。

  • A列「宛先」:メールの宛先。結果を書き戻すときの目印(キー)になるため、重複させません。
  • B列「件名」:メールの件名
  • C列「本文」:メールの本文
  • D列「結果」:最初は空にしておきます。フローが「成功」「失敗」を書き込みます。

宛先は、すべて架空のダミー(@windowsfaq.net)です。5行目だけ、失敗の見本として、わざと書式を崩した宛先(test@@windowsfaq.net)にしています。

テスト実行すると、宛先に実際にメールが送信されます。存在しない宛先は、あとから不達通知が届きます。また、「成功」は、メールの送信が受け付けられたという意味で、相手に届いたことではありません。

Excelの送信リストの行を取得する

手動で起動するフローを作り、Excelの表からすべての行を取得します。

  1. Power Automateの左側の「作成」→「インスタント クラウド フロー」を選び、トリガーに「フローを手動でトリガーする」を選んで作成します。フロー名は、あとで見分けやすい名前にします。
  2. 「+」をクリックし、「Excel Online (Business)」から「表内に存在する行を一覧表示」を追加します。
  3. 場所は「OneDrive for Business」、ドキュメント ライブラリは「ドキュメント」を選びます。ファイルは用意したExcelファイル、表は「送信リスト」を選びます。
  4. Power Automateで「表内に存在する行を一覧表示」を設定した画面。表に「送信リスト」を選んでいる

このアクションは、既定で最大256行までを取得します。それ以上の行を扱う場合は、アクションの設定でページネーションをオンにします(Microsoftの説明より)。

「それぞれに適用する」で1行ずつ処理し、同時実行を1にする

取得した行を、1行ずつ処理するループを作ります。Excelへの書き込みが重ならないよう、同時に処理する数を1に設定します。

  1. 「+」→「コントロール」→「それぞれに適用する」を追加します。「前のステップから出力を選択します」には、動的なコンテンツの「value」を選びます。
  2. 「それぞれに適用する」をクリックして設定を開き、「設定」タブの「同時実行管理」を「オン」にします。「並列処理の水準」は「1」にします。
  3. 「それぞれに適用する」の設定タブで、同時実行管理をオンにして並列処理の水準を1にした画面

Microsoftの説明では、Excel Online (Business) コネクタは、同じファイルに複数の場所から同時に書き込むことを避ける必要があります。同時実行を1にしておくと、1行ずつ順番にExcelへ書き込まれます。

スコープの中でメールを送信する

メール送信を「スコープ」に入れます。スコープ全体が成功したか失敗したかで、次の手順の結果記録を切り替えるためです。

  1. 「それぞれに適用する」の中に、「コントロール」→「スコープ」を追加し、名前を「送信」に変更します。
  2. スコープの中に、「Office 365 Outlook」から「メールの送信 (V2)」を追加します。
  3. 宛先、件名、本文に、動的なコンテンツの「宛先」「件名」「本文」を、それぞれ指定します。
  4. スコープ「送信」の中の「メールの送信 (V2)」で、宛先・件名・本文にExcelの列を指定した画面

送信が成功したとき、D列に「成功」を書き込む

スコープ「送信」が成功したときに、Excelの「行を更新する」で、その宛先の行のD列に「成功」を書き込みます。

  1. スコープ「送信」の下に、「Excel Online (Business)」から「行を更新する」を追加し、名前を「結果記録(成功)」に変更します。
  2. 場所、ドキュメント ライブラリ、ファイル、表は、手順1と同じものを選びます。キー列は「宛先」、キー値は動的なコンテンツの「宛先」を指定します。
  3. 「詳細パラメーター」から「結果」を表示し、「成功」と入力します。
  4. 「結果記録(成功)」で、キー列に宛先、結果に成功を指定した画面

この「行を更新する」は、キー列(宛先)の値が一致する行のD列を更新します。キー列は大文字と小文字が区別されます(Microsoftの説明より)。

送信が失敗したとき、D列に「失敗」を書き込む(並列分岐)

スコープ「送信」が失敗したときに動く、もう1つの「行を更新する」を追加します。「結果記録(成功)」の下に縦に並べず、並列分岐で追加するのがポイントです。

  1. スコープ「送信」と「結果記録(成功)」の間の線にマウスを乗せ、「+」→「並列分岐を追加する」を選びます。
  2. 追加した分岐に、Excel Online (Business) の「行を更新する」を追加し、名前を「結果記録(失敗)」に変更します。
  3. 場所、ドキュメント ライブラリ、ファイル、表、キー列、キー値は「結果記録(成功)」と同じにします。「結果」には「失敗」と入力します。
  4. 並列分岐に追加した「結果記録(失敗)」で、結果に失敗を指定した画面
  5. 「結果記録(失敗)」の「設定」タブを開き、「この後に実行する」で、スコープ「送信」の「成功しました」のチェックを外します。「タイムアウトした」と「失敗しました」にチェックを入れます。
  6. 「結果記録(失敗)」の設定タブで、スコープ「送信」が失敗・タイムアウトしたときに実行する条件を選んだ画面

「この後に実行する」の一覧に、スコープ「送信」が表示されていれば、並列分岐になっています。一覧に「結果記録(成功)」しか出ない場合は、縦に並んでいるため、並列分岐で追加し直します。

テスト実行して、D列の結果を確認する

フローを保存してテスト実行し、実行結果の画面と、ExcelのD列を確認します。

  1. 右上の「下書きを保存する」をクリックします。続けて「テスト」→「手動」→「テスト」の順にクリックし、「フローの実行」の画面で「フローの開始」をクリックします。
  2. 実行結果の画面で、「それぞれに適用する」の下のページ番号を「5」に切り替え、5件目を表示します。実際に試したところ、スコープ「送信」が失敗(赤)、「結果記録(成功)」がスキップ(灰色)、「結果記録(失敗)」が成功(緑)になりました。
  3. 5件目の実行結果。スコープ「送信」が失敗し、「結果記録(失敗)」が実行された画面
  4. Excelを開き、D列を確認します。2〜5行目に「成功」、書式を崩した宛先の6行目に「失敗」が記録されました。
  5. ExcelのD列に、成功と失敗が宛先ごとに記録された画面

失敗の行があると、「それぞれに適用する」とフロー全体の実行は「失敗」と表示されました。それでも、D列への記録は、失敗の行も含めて正しく行われていました。この表示になる原因は、公式の情報では確認できていません。実際に起きたとおりに紹介しています。

こんなときは:よくあるつまずきポイントと対処法

  • 「それぞれに適用する」に「ActionFailed. No dependent actions succeeded.」というエラーが表示される
    原因:宛先が正しくないため、メールの送信に失敗した。
    → 動作には問題ありません。処理は正しく完了し、送信エラーになった行は、Excelに「失敗」と記録されます。
  • 結果が別の行に書かれる、または更新されない
    原因:宛先(A列)が重複している。同じキー値の行が複数あると、最初の1行だけが更新される。
    → 宛先を重複させないでください。
  • 結果が書き込まれない行がある
    原因:「それぞれに適用する」の同時実行が1になっておらず、Excelへの書き込みが重なっている可能性がある。
    → 「設定」タブで、同時実行管理をオンにして、並列処理の水準を「1」にしてください。
  • フローの実行が終わっても、D列にすぐ反映されない
    原因:Excelへの書き込みの反映に、最大30秒の遅延が生じる場合がある(Microsoftの説明より)。
    → 少し待ってから、Excelを開き直してください。実行中にExcelファイルを開いて編集することも避けてください。
  • 「429 要求が多すぎます」のエラーが出る
    原因:Excelコネクタには、接続ごとに60秒あたり100回の呼び出しという制限がある(Microsoftの説明より)。行数が多いと超える場合がある。
    → アクションに「遅延」を追加するか、Power Automate DesktopでOutlook一斉送信の上限を回避する方法を検討してください。

よくある質問

Q. Power Automateでメール送信の成功・失敗をExcelに記録できますか?

A. できます。メール送信を「スコープ」に入れ、スコープが成功したときと失敗したときで、Excelの「行を更新する」を並列分岐に分けて、D列に「成功」「失敗」を書き込みます。

Q. 「成功」と記録されたメールは、相手に届いていますか?

A. 届いたとは限りません。「成功」は、メールの送信が受け付けられたという意味です。存在しない宛先への送信は、あとから不達通知が届きます。

Q. 宛先が重複しているとどうなりますか?

A. Microsoftの説明では、同じキー値の行が複数ある場合、最初の1行だけが更新されます。宛先(A列)は重複させないでください。

実際に試してみて実感したのは、結果をExcelに書き戻しておくと、失敗した宛先をD列で絞り込めるため、再送する宛先を選びやすくなるということです。100件の確認が実行履歴で約50分かかる見込みなら、Excelの表を見る数分に短縮できます。この記事の手順でD列が更新されない場合は、宛先の重複と、同時実行の設定を最初に確認してみてください。

確認環境 Windows 11 Business 26H2(ビルド26300.9457)/ Microsoft Edge / Power Automate(クラウド版・新しいデザイナー)

最終更新 2026年10月

関連サイト(外部)

Excel オンライン (ビジネス) コネクタ — Microsoft Learn

スコープを使用してクラウド フローのアクションを整理する — Microsoft Learn

関連記事