Power Automate DesktopでOutlook一斉送信の上限を回避

更新日:2026/9/24Office

Power Automate(クラウド版)でOutlookの一斉送信を自動化すると、コネクタ自体に「60秒あたり300回のAPI呼び出し」という上限があり、件数が多いとエラーコード429で途中停止することがあります。Windows 11に標準搭載されているPower Automate Desktopを使えば、このコネクタ特有の上限を受けずに、Excelの送信リストをもとにOutlookのクラシック版から一斉送信できます。ただしOutlook/Exchange Online自体の送信上限は変わらず適用されるため、上限そのものがなくなるわけではない点も、あわせて解説します。

Power Automate Desktop:起動直後のメイン画面

対象OS Windows 11(Power Automate Desktop標準搭載)、Windows 10(要インストール)

クラウド版との違い:送信数の「上限」について

Power Automate(クラウド版)でOutlookのメールを自動送信する場合、Office 365 Outlookコネクタ自体に「60秒あたり300回のAPI呼び出し」という上限があります。送信件数(Excelの行数)が多いと、この上限に達してエラーコード429でフローが途中停止することがあります。

Power Automate Desktopは、クラウドのコネクタを経由せず、PCにインストールされたOutlookデスクトップアプリを直接操作(自動化)する仕組みです。そのため、クラウド版のような「Power Automateコネクタ特有の呼び出し上限」は受けません。

ただし、注意点があります。送信自体は同じOutlook/Exchange Onlineのメールボックスを使うため、Exchange Online側の送信上限(1日あたり最大10,000件、うち社外宛ては2,000件まで)は共通で適用されます。「デスクトップ版なら無制限に送れる」わけではありません。

Exchange Onlineの送信上限は24時間のスライディングウィンドウで計測されます。数千件規模の一斉送信を定期的に行う場合は、Microsoft 365管理センターで自組織の上限を確認したうえで、送信を複数日・複数回に分けることを検討してください。

確認 Power AutomateでOutlookのメールを一斉自動送信する方法(クラウド版)

始める前に:デスクトップ版に必要な環境

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

  • 従来のOutlookデスクトップアプリ(クラシックOutlook)がインストール・サインイン済みであること
  • Power Automate Desktop(Windows 11は標準搭載、Windows 10は無料インストール)
  • 送信リストのExcelファイル(クラウド版と異なり、OneDriveに置かずPC内のローカルファイルのままで使えます)

Outlook自動化アクションは、新しいOutlook for Windowsに対応していません。従来のOutlookデスクトップアプリ(クラシックOutlook)を使用してください。

Excelの送信リストを準備する

まとめて送信する宛先・件名・本文のデータをExcelに入力し、テーブルに変換したうえで、Power Automate Desktopから参照できるよう名前を付けます。

  1. Excelを開き、1行目に列見出し「宛先」「件名」「本文」を入力し、2行目以降に送信先ごとのデータを入力します。

    Power Automate Desktop:宛先・件名・本文の列を用意したExcelの送信リスト
  2. 見出し行を含むデータ範囲を選択し、リボンの「挿入」→「テーブル」をクリックします。「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確認して「OK」をクリックします。
  3. テーブル内の任意のセルを選択した状態で表示される「テーブル デザイン」タブを開き、「プロパティ」グループの「テーブル名」欄に分かりやすい名前(例:MailList)を入力して変更します。この名前を後の手順でPower Automate Desktop側から指定します。
  4. ファイルをPC内の分かりやすい場所(例:C:\Users\ユーザー名\Documents)に保存します。

テーブル名は既定では「テーブル1」のような名前になっています。分かりやすい名前に変更しておくと、Power Automate Desktop側で読み込み先を指定するときに迷いません。

Power Automate Desktopでフローを作成する

「Excelの読み込み」「Outlookの起動」「ループでの送信」の3ブロックを組み合わせます。

  1. Power Automate Desktopを起動し、「+新規」→「新しいフロー」をクリックします。「フロー名」に任意の名前(例:「メールの自動送信」)を入力し、「作成」をクリックします。

    Power Automate Desktop:フローの作成ダイアログでフロー名を入力する画面
  2. 作成すると、まだアクションが何もないフロー編集画面が開きます。ここに以下のアクションを順に追加していきます。

    Power Automate Desktop:アクションが何もない状態のフロー編集画面
  3. アクション ペインの検索欄で「Excel」と検索し、「Excelの起動」をフローにドラッグします。「Excelの起動」を「次のドキュメントを開く」に設定し、「ドキュメント パス」に手順1で保存したExcelファイルのパスを指定して「保存」をクリックします。生成される変数は既定でExcelInstanceです。

    Power Automate Desktop:Excelの起動アクションでドキュメントパスを指定する設定画面
  4. 続けて「Excel ワークシートから読み取る」アクションを追加します。「Excel インスタンス」に%ExcelInstance%を指定し、「取得」を「名前付きセルの値」に設定して、「名前」欄に手順1で設定したテーブル名(例:MailList)を入力して「保存」をクリックします。生成される変数は既定でExcelDataです。

    Power Automate Desktop:Excelワークシートから読み取るアクションで名前付きセルの値を指定する設定画面
  5. 「Outlook を起動します」アクションを追加します。このアクションに入力パラメーターはなく、そのまま「保存」をクリックします。生成される変数は既定でOutlookInstanceです。

    Power Automate Desktop:Outlookを起動しますアクションの設定画面
  6. 「For each」アクションを追加し、反復処理する値にExcelDataを指定します。ループ内で1行ずつ処理されます。
  7. 「For each」ループの内側に「Outlook からのメール メッセージの送信」アクションを追加します。「Outlook インスタンス」にOutlookInstanceを指定し、「アカウント」に送信元のOutlookメールアドレスを入力します。「宛先」に%CurrentItem[0]%、「件名」に%CurrentItem[1]%、「本文」に%CurrentItem[2]%を指定します(Excelの列順:A列=宛先→[0]、B列=件名→[1]、C列=本文→[2])。本文にHTMLタグを使う場合は「本文 は HTML です」をオンにします。

    Power Automate Desktop:Outlookからのメール メッセージの送信アクションで宛先・件名・本文を指定する設定画面
  8. 「下書きとして保存」が必ずオフになっていることを確認してください。オンのままだとメールは送信されず、Outlookの下書きフォルダに保存されるだけになります。内容を確認する目的で一時的にオンにしていた場合は、本番実行前に必ずオフへ戻してください。
  9. すべて追加すると、フローは次のような構成になります。必要に応じて、ループの外(Forループの後ろ)に「Outlookを閉じる」アクションを追加すると、送信完了後にOutlookを終了することができます。

    Power Automate Desktop:Excelの起動からOutlook送信のFor eachループまで一式を組んだ完成後のフロー全体

「Outlook からのメール メッセージの送信」アクションには、宛先・CC・BCC・件名・本文(HTML可)・添付ファイルを指定できます。CCやBCCを使う場合は、Excelにも対応する列を追加し、%CurrentItem[番号]%で参照してください。

テスト実行してから本番の一斉送信を行う

本番のリストで実行する前に、必ずテストしてください。テスト実行では実際にメールが送信されます。

  1. Excelの送信リストに、自分宛てのテスト行を1件だけ用意した状態でフローを実行し、意図したとおりのメールが届くか確認します。
  2. 件名・本文・宛先の差し込みに問題がなければ、Excelを本番の送信リストに差し替えてフローを再実行します。

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

  • フローは成功しているのにメールが届かない:「Outlook からのメール メッセージの送信」アクションの「下書きとして保存」がオンになっている可能性があります。オフにして再実行してください。
  • 新しいOutlookを使っている:Outlook自動化アクションは新しいOutlook for Windowsに対応していません。「クラシックOutlook」(従来のOutlookデスクトップアプリ)を使用してください。
  • 「送信数の上限がない」と誤解している:Power Automateコネクタ特有の呼び出し制限は受けませんが、Exchange Online自体の送信上限(1日最大10,000件、社外は2,000件)は共通で適用されます。
  • 実行中にExcelやOutlookを操作してしまう:フロー実行中にExcelやOutlookのウィンドウを閉じたり操作したりすると、以降のアクションが失敗します。実行中は他の作業をしないでください。
  • 大量送信で迷惑メール判定される:短時間に大量送信すると、宛先側でスパム扱いされることがあります。件数が多い場合は「待機」アクションを挟んで送信間隔をあけてください。

確認 Outlookでメールの下書きをまとめて作成・送信する方法(VBA)

よくある質問

Q. デスクトップ版ならOutlookの一斉送信に上限はありませんか?

いいえ、上限がなくなるわけではありません。Power Automate(クラウド版)のコネクタ特有の呼び出し制限(60秒あたり300回など)は受けませんが、送信自体はOutlook/Exchange Onlineの仕組みを使うため、Exchange Online側の送信上限(1日最大10,000件、社外宛ては2,000件まで)は共通で適用されます。

Q. 新しいOutlook(new Outlook for Windows)でも使えますか?

使えません。Outlook自動化アクションは新しいOutlook for Windowsに対応していないため、従来のOutlookデスクトップアプリ(クラシックOutlook)をインストールして使用する必要があります。

Q. Power Automate Desktopは無料で使えますか?

自分のPCで自分自身が実行する範囲(アテンド型自動化)であれば、追加ライセンスなしで無料で使えます。無人(unattended)実行やクラウドフローとの連携など一部の機能は、別途有料ライセンスが必要です。

確認環境 Windows 11 / Power Automate Desktop / Outlook デスクトップアプリ(クラシック)/ Excel for Microsoft 365

最終更新 2026年9月24日

関連サイト(外部)

Outlook actions reference — Power Automate(Microsoft Learn)

Exchange Online での送信制限のトラブルシューティング(Microsoft Learn)