Power AutomateでOutlookのメールを一斉自動送信する方法|Excelリストでまとめて送る

Office

Outlookのメールを一斉・自動送信したいなら、Power Automate(クラウド版)とExcelの組み合わせが手軽です。送信リストをExcelに用意しておけば、フローを起動するだけでまとめて送信が完了し、1通ずつコピー&ペーストする手間をなくせます。

Power AutomateでExcelリストをもとにOutlookのメールを一斉自動送信するフロー設定画面

対象OS Windows 11

Outlookで一斉送信・自動化したい——RPAツール(Power Automate)という選択

「100人にメールをまとめて送りたい」——そんな場面で、1通ずつ宛先を入力してOutlookで送り続けた経験はないでしょうか。件数が増えるほど作業時間はかさみ、送り漏れや誤送信のリスクも高まります。

筆者は現在担当しているプロジェクトで、一度に数千人へ通知メールを一斉送信する業務を定期的に行っています。手動での対応はもちろん不可能で、自動化の仕組みがなければ成立しない作業量です。社内で利用できるツールはMicrosoftのPower Platformが中心だったため、Power Automateでの自動送信を選択し、現在も実運用で活用しています。

先日、別の部門からも「同じようにOutlookでまとめて自動送信したい」という相談を受けたため、この機会に手順をまとめることにしました。

この記事では、クラウド版 Power Automateを使った一斉自動送信の手順を紹介します。デスクトップ版(Power Automate Desktop)でも基本的な設定の流れは同じです。なお、クラウド版にはAPI呼び出し回数の上限があるため、数百件を超える送信が必要な場合はデスクトップ版の利用を検討してください(後述)。

一度フローを作成してしまえば、次回以降はExcelを更新してボタンを押すだけです。月1回100件の一斉送信作業であれば、手作業の2〜3時間が毎回5分以内に収まります。

始める前に:Outlookの一斉自動送信に必要な環境

以下の環境と準備が整っていることを確認してください。

  • Microsoft 365(Business BasicまたはStandard以上)のアカウント
  • OutlookアカウントがMicrosoft 365に紐づいていること
  • 送信リストのExcelファイルがOneDrive for BusinessまたはSharePointに保存されていること

ExcelファイルはOneDriveまたはSharePoint上に保存する必要があります。ローカルPC上のExcelファイルは、Power Automateクラウド版から直接読み込めません。

Power Automateクラウド版のAPI呼び出し上限は、プランによって異なります。Microsoft 365 Business Basicでは1日あたり約6,000リクエストが目安です。Excelの行数(送信件数)×フロー内のアクション数がこの上限を超えると、その日の処理が途中で止まります。数百件を超えるメールをまとめて送信したい場合は、Power Automate Desktop(デスクトップ版)の利用を検討してください。

1. 一斉送信用のExcelリストを準備する

まとめて送信する宛先・件名・本文のデータをExcelに入力し、テーブル形式に変換してOneDriveに保存します。テーブル形式への変換を忘れると、Power Automateがデータを読み込めないため必ず行ってください。

  1. Excelを開き、1行目に列見出しを入力します。最低限、以下の列が必要です。

    メールアドレス(メールの宛先です)
    件名(全て同じ件名でメールを送信する場合は不要です)
    送信メッセージ(メール本文です)
  2. 2行目以降に送信先のデータを入力します。
  3. データ範囲(見出し行を含む)を選択し、リボンの「挿入」→「テーブル」をクリックします。「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認して「OK」をクリックします。
  4. Excelでメール一斉送信リストをテーブル形式に変換した画面
  5. ファイルをOneDrive for Business(またはSharePoint)に保存します。

範囲のままだとPowerAutomate側で読み込みがされません。必ず「挿入」→「テーブル」からテーブルに変換してください。

2. Power Automateで自動送信フローを新規作成する

Power Automate(make.powerautomate.com)にサインインし、手動で起動できるフロー(インスタントクラウドフロー)を作成します。

  1. 左サイドバーの「作成」をクリックします。
  2. 「インスタントクラウドフロー」を選択します。
  3. 任意のフロー名を入力し、トリガーの一覧から「フローを手動でトリガーする」を選択して「作成」をクリックします。
  4. Power Automateでインスタントクラウドフローを新規作成する画面

3. ExcelのリストをPower Automateで読み込む

フローにExcelコネクタを追加し、手順1で作成した送信リストのデータを読み込む設定を行います。

  1. フロー編集画面で「+新しいステップ」をクリックします。
  2. 検索ボックスに「Excel」と入力し、「Excel Online (Business)」を選択します。
  3. アクションの一覧から「表内に存在する行を一覧表示」を選択します。
  4. 各フィールドを次のように設定します。

    場所:OneDrive for Business(またはSharePoint)
    ドキュメントライブラリ:ドキュメント
    ファイル:手順1で保存したExcelファイルを選択
    テーブル:手順1で作成したテーブル名を選択
  5. Power AutomateでExcel Online (Business)の送信リストを読み込む設定画面

4. Outlookのメール自動送信アクションを設定する

「Apply to each(それぞれに適用する)」コントロールを使い、Excelの各行のデータをOutlookのメール送信アクションに渡します。このコントロールがリストの全件をまとめて処理するループの核になります。

  1. 「+新しいステップ」をクリックし、「コントロール」→「それぞれに適用する」を選択します。
  2. 「前のステップから出力を選択します」のフィールドをクリックします。
  3. マークをクリックし、表示された動的なコンテンツの中から、表内に存在する行を一覧表示の項目にある「body/value」を選択します。
  4. 「それぞれに適用する」の枠内の「アクションの追加」をクリックします。
  5. 検索ボックスに「Outlook」と入力し、「Office 365 Outlook」→「メールの送信 (V2)」を選択します。

    アクション一覧の中に「メールの送信 (V2)」が表示されていない場合は、項目右上にある「詳しく見る」をクリックし、すべてのアクションを表示させてください。

  6. 各フィールドに動的なコンテンツ(マークをクリックして表示します)からExcelの列を紐付けます。(一覧に該当する項目がない場合は、項目の右上にある「表示数を増やす」をクリックしてください)

    宛先:動的なコンテンツから「メールアドレス」(Excelの宛先列)を選択
    件名:動的なコンテンツから「件名」を選択(件名が固定の場合は直接入力)
    本文:動的なコンテンツから「送信メッセージ」を選択
  7. Power AutomateのApply to each内でOutlookのメール自動送信アクションを設定した画面

- メールの件名や本文を固定で送信する場合は、「件名」、「本文」のそれぞれのフィールドに直接テキストを入力しても構いません。
- メール本文にHTMLタグ(改行の <br> など)を使用する場合は、「詳細オプションを表示する」から「メールの本文はHTMLです」をオンにしてください。オフのままだと、タグが文字としてそのまま表示されます。
- CCやBCC、添付ファイルなどを追加したい場合は、詳細パラメーターの項目横にある「すべて表示」ボタンをクリックしてください。

5. テスト実行して一斉送信の動作を確認する

フローを保存し、テスト実行で実際にOutlookからメールが自動送信されることを確認します。本番データで実行する前に、Excelに自分宛てのテスト行を1件だけ追加して動作確認することを強くお勧めします。テスト実行は実際にメールが送信されます。

  1. 画面右上の「保存」をクリックします。
  2. 「テスト」をクリックし、「手動」→「テスト」の順に選択して実行します。
  3. 各ステップにチェックマークが表示され、Outlookの送信済みアイテムでメールが確認できれば完了です。問題がなければ、Excelシートを本番の送信リストに差し替えて本番実行します。

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

実際に設定した際に詰まりやすいポイントをまとめました。自動送信がうまくいかないときはここから確認してください。

  • テーブル選択時に候補が表示されない
    原因:Excelファイルがテーブルではなく範囲のままになっているか、ローカルに保存されている。
    → 「挿入」→「テーブル」でテーブル形式に変換し、OneDriveに保存し直してください。
  • 動的なコンテンツにExcelの列名が表示されない
    原因:前のステップの「テーブル内に存在する行を一覧表示」でファイルやテーブルが未選択の状態になっている。
    → 前のステップに戻り、ファイルとテーブルが正しく選択されているか確認してください。
  • フローが途中で止まる(エラーコード 429)
    原因:クラウド版のAPI呼び出し上限を超えた。
    → 「メールの送信」の後に「遅延」アクション(1〜2秒)を追加してリクエストを分散させるか、まとめて送信する件数が多い場合はPower Automate Desktopへの移行を検討してください。
  • 本文の改行が消える、または <br> タグがそのまま表示される
    原因:「メールの本文はHTMLです」がオフになっている。
    → 「詳細オプションを表示する」から「メールの本文はHTMLです」をオンにしてください。

実際に運用してみて実感したのは、最初のフロー作成に30分ほどかかっても、一度作ってしまえば次回以降はExcelのリストを更新してボタンを押すだけで一斉送信が完了するということです。月1回100件のメールをまとめて送る作業であれば、手作業の数時間が毎回5分以内に収まります。この記事の手順で解決しない場合は、Excelのテーブル設定とOneDriveへの保存状態を最初に確認してみてください。

確認環境 Windows 11 / Power Automate(クラウド版)/ Microsoft 365 Business Basic / Excel for Microsoft 365

最終更新 2026年4月

関連サイト(外部)

Power Automate のドキュメント — Microsoft Learn