Power Automateでメールの添付ファイルをOneDriveへ自動保存

Power Automate(クラウド版)で、受信メールの添付ファイルをOneDriveの指定フォルダーに自動保存する手順を、実際の画面つきで解説します。件名で対象を絞り込む方法と、実行した日時のフォルダーに保存する方法も紹介します。

Power Automateでメールの添付ファイルをOneDriveに自動保存する方法を紹介するサムネイル。OneDriveのフォルダーに、請求書のPDFと明細のCSVが保存された画面

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

届いた請求書を、手作業でフォルダーに保存している——添付ファイルを自動で整理する

取引先から届く請求書や明細などの添付ファイルを、メールを開いて、名前を付けて保存して、フォルダーに入れる。件数が増えるほど手間がかかり、保存し忘れも起きやすい作業です。

Power Automateを使うと、条件に合うメールが届いたときに、添付ファイルをOneDriveの決めたフォルダーへ自動で保存できます。この記事では、実際に試した手順を紹介します。件名に「【テスト請求書】」を含み、添付ファイルがあるメールだけを対象に、添付ファイルをOneDriveへ保存します。

応用として、実行した日時の名前のフォルダーを自動で作り、その中に保存する方法も紹介します。

始める前に:確認した環境と、作るフローの流れ

この記事は、クラウド版のPower Automate(ブラウザーで操作)を使います。メールは、勤務先アカウント(Office 365 Outlook)の受信トレイに届くものが対象です。保存先は、同じアカウントのOneDrive for Business(勤務先のOneDrive)です。

作るフローは、次の3つの部品でできています。

  • トリガー:「新しいメールが届いたとき (V3)」。条件に合うメールが届くと、フローが始まります。
  • それぞれに適用する:1通のメールに添付ファイルが複数あるため、1つずつ順番に処理します。
  • ファイルの作成:OneDrive for Businessのアクション。添付ファイルを、指定のフォルダーに保存します。
完成したフロー。トリガー「新しいメールが届いたとき (V3)」の下に、「それぞれに適用する」と、その中の「ファイルの作成」が並んでいる画面

先に、OneDriveの「ドキュメント」の中に、保存先のフォルダー(この記事では「請求書の保存」)を作っておきます。

テスト用のメールの件名、本文、添付ファイルは、すべて架空のダミーです。添付ファイルは、PDFとCSVの2つを用意しました。

フローを新規作成し、トリガーを選ぶ

メールが届いたときに自動で動くフローを作ります。

  1. Power Automateの左側の「作成」→「自動化したクラウド フロー」を選びます。
  2. フロー名を入力します(あとで見分けやすい名前にします)。
  3. トリガーの一覧から「新しいメールが届いたとき (V3)」(Office 365 Outlook)を選び、「作成」をクリックします。
  4. 自動化したクラウド フローを構築する画面で、トリガーに「新しいメールが届いたとき (V3)」を選んだ画面

トリガーで、保存の対象にするメールを絞り込む

すべてのメールではなく、件名に決まった言葉を含み、添付ファイルがあるメールだけを対象にします。

  1. トリガーの「詳細パラメーター」で、「添付ファイルを含める」「件名フィルター」「添付ファイル付きのみ」「フォルダー」を表示します。
  2. 「添付ファイルを含める」を「はい」にします。
  3. 「件名フィルター」に、対象にしたい言葉を入力します。この記事では「【テスト請求書】」としました。
  4. 「添付ファイル付きのみ」を「はい」にします。
  5. 「フォルダー」は「受信トレイ」を選びます。
  6. トリガーの詳細パラメーターで、添付ファイルを含めるをはい、件名フィルターを【テスト請求書】、添付ファイル付きのみをはい、フォルダーを受信トレイにした画面

トリガーには、このほかに「差出人」「宛先」「重要度」などの絞り込みもあります(Microsoftの説明より)。請求書を送ってくる取引先が決まっている場合は、「差出人」で絞り込むと、対象を確実に限定できます。

「それぞれに適用する」で、添付ファイルを1つずつ処理する

1通のメールに添付ファイルが複数あっても保存できるよう、添付ファイルを1つずつ処理するループを作ります。

  1. トリガーの下の「+」をクリックし、「コントロール」→「それぞれに適用する」を追加します。
  2. 「前のステップから出力を選択します」の欄をクリックし、動的なコンテンツから「添付ファイル」を選びます。
  3. 「それぞれに適用する」の「前のステップから出力を選択します」に、動的なコンテンツの「添付ファイル」を指定した画面

OneDriveの「ファイルの作成」で、添付ファイルを保存する

「それぞれに適用する」の中に、OneDrive for Businessの「ファイルの作成」を追加し、保存先と、保存するファイルの名前・中身を指定します。

  1. 「それぞれに適用する」の中の「+」をクリックし、「OneDrive for Business」から「ファイルの作成」を追加します。
  2. 初めて使うときは「接続を作成する」と表示されます。「サインイン」をクリックして、OneDriveにサインインします。
  3. 「フォルダーのパス」の右のフォルダーのアイコンをクリックし、「ドキュメント」の中の、保存先のフォルダーを選びます。
  4. 「ファイル名」の欄をクリックし、動的なコンテンツから「添付ファイル 名前」を選びます。
  5. 「ファイル コンテンツ」の欄をクリックし、動的なコンテンツから「添付ファイル コンテンツ」を選びます。
  6. 「ファイルの作成」で、フォルダーのパスに保存先を、ファイル名に添付ファイルの名前を、ファイル コンテンツに添付ファイルのコンテンツを指定した画面

動的なコンテンツの候補には、「添付ファイル コンテンツ」のほかに、「添付ファイル コンテンツの種類」「添付ファイル コンテンツ ID」などが並びます。「ファイル コンテンツ」には、「添付ファイル コンテンツ」を選んでください。設定した項目は、省略して表示されたり、開き直すと「name」「contentBytes」という名前で表示されたりします。

フローを保存・公開し、テストメールを送って確認する

フローを有効にして、条件に合うテストメールを、別のメールアドレスから送ります。

  1. 右上の「下書きを保存する」をクリックし、続けて「公開」をクリックして、フローを有効にします。
  2. 別のメールアドレスから、フローを作ったアカウントの受信トレイ宛に、メールを送ります。件名に「【テスト請求書】」を含め、ダミーの添付ファイルを2つ付けます。
  3. メールが届くと、フローが自動で実行されます。OneDriveの保存先のフォルダーを開きます。
  4. OneDriveの「請求書の保存」フォルダーに、請求書のPDFと明細のCSVの2つの添付ファイルが保存された画面

実際に試したところ、添付ファイルの2つが、どちらも保存先のフォルダーに保存されました。保存したPDFとCSVは、どちらも問題なく開け、CSVの日本語も文字化けしませんでした。

メールが届いてからフローが実行されるまでには、時間がかかることがあります。Microsoftの説明では、トリガーの起動が、まれに最大1時間遅れることがあります。

応用:実行した日時のフォルダーを作って、その中に保存する

保存のたびに、実行した日時の名前のフォルダー(例:2026-10-08_2229)を作り、その中に添付ファイルを保存します。実行ごとにフォルダーが分かれるので、別のメールで同じ名前の添付ファイルが届いても、ファイルが混ざりません。

  1. トリガーと「それぞれに適用する」の間の「+」をクリックし、「変数」→「変数を初期化する」を追加します。
  2. 「名前」に「保存先フォルダー名」、「種類」に「文字列」を指定します。
  3. 「値」の欄をクリックして、「式」タブ(fxのアイコン)を開き、次の式を入力します。
    convertTimeZone(utcNow(), 'UTC', 'Tokyo Standard Time', 'yyyy-MM-dd_HHmm')
  4. 「ファイルの作成」の「フォルダーのパス」を、「/ドキュメント/請求書の保存/」の後ろに、動的なコンテンツの「保存先フォルダー名」を続けた形に変更します。
  5. フローを保存し、もう一度テストメールを送ります。
  6. 保存先のフォルダーの中に、実行した日時の名前(2026-10-08_2229)のフォルダーが自動で作られ、その中に2つの添付ファイルが保存された画面

実際に試したところ、存在しないフォルダーを指定しても、「ファイルの作成」の実行時に、フォルダー「2026-10-08_2229」が自動で作られ、その中に2つの添付ファイルが保存されました。フローも、正常に実行されました。

「変数を初期化する」は、「それぞれに適用する」の中には置けません。必ず、「それぞれに適用する」の外(トリガーとの間)に置きます。また、「utcNow()」は世界標準時(日本より9時間遅い)のため、「convertTimeZone」で日本時間に直しています。フォルダー名に「:」は使えないので、時刻は「HHmm」(コロンなし)にしています。

こんなときは:うまく動かないときの確認ポイント

  • メールが届いても、フローが実行されない
    原因:件名フィルターの言葉がメールの件名に含まれていない、または、受信トレイ以外のフォルダー(仕分けルールで移動した先など)にメールが入っている可能性がある。トリガーは、指定したフォルダーのメールを監視します。また、Microsoftの説明では、トリガーの起動が、まれに最大1時間遅れることがある。
    → トリガーの「件名フィルター」と「フォルダー」を確認し、しばらく待ってから、実行履歴を見直してください。
  • 添付ファイルが多い、または大きいと、タイムアウトする
    原因:「添付ファイルを含める」を「はい」にすると、すべての添付ファイルのダウンロードを待つため、タイムアウトする可能性がある(Microsoftの説明より)。
    → 「添付ファイルを含める」を「いいえ」にして、「添付ファイルの取得 (V2)」で、あとからダウンロードする方法が案内されています。この方法は、筆者は試していません。
  • 保存したファイルが開けない
    原因:「ファイル コンテンツ」に選んだ項目が違う可能性がある。この記事の手順では、「添付ファイル コンテンツ」を選び、PDFもCSVも問題なく開けた。
    → 「ファイル コンテンツ」の項目を、「添付ファイル コンテンツ」に設定し直してください。
  • 保存されたファイル名が、元の添付ファイルの名前と違う
    原因:OneDriveで使えない文字がファイル名に含まれていると、アンダースコア(_)に置き換えられる(Microsoftの説明より)。
    → 添付ファイルの名前に、使えない文字が含まれていないか確認してください。
  • 署名の画像など、保存したくない画像まで対象になる
    メモ:動的なコンテンツに「添付ファイル インライン」(インライン添付ファイルの場合は true)があります。本文に埋め込まれた画像を除外したいときに使える可能性がありますが、筆者は試していません。

よくある質問

Q. Power Automateでメールの添付ファイルをOneDriveに自動保存できますか?

A. できます。トリガー「新しいメールが届いたとき (V3)」で添付ファイルを取得し、「それぞれに適用する」の中で、OneDrive for Businessの「ファイルの作成」を使って1つずつ保存します。

Q. 特定のメールの添付ファイルだけを保存できますか?

A. できます。トリガーの「件名フィルター」「差出人」「添付ファイル付きのみ」などで絞り込めます(Microsoftの説明より)。この記事では、件名に「【テスト請求書】」を含むメールだけを対象にしました。

Q. 添付ファイルが大きい場合は、どうすればよいですか?

A. Microsoftの説明では、「添付ファイルを含める」を「はい」にすると、タイムアウトする可能性があります。回避策として、「いいえ」にして、「添付ファイルの取得 (V2)」で、あとからダウンロードする方法が案内されています。この回避策は、筆者は試していません。

実際に試してみて実感したのは、メールを開いて保存する手作業が、フローを一度作れば不要になることです。まずは、件名フィルターと「添付ファイル付きのみ」で対象を絞り、少数のテストメールで保存を確かめてから、本番のメールに使うのがおすすめです。保存先を日時のフォルダーに分けておくと、あとから「いつ届いたものか」を探しやすくなります。

関連記事:Power Automateでメールを送る流れは、Power AutomateでOutlookのメールを一斉自動送信する方法|Excelリストでまとめて送るで、送信結果をExcelに残す方法は、Power Automateでメール送信結果をExcelに記録する方法で解説しています。

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

最終更新 2026年10月

関連サイト(外部)

Office 365 Outlook コネクタ — Microsoft Learn

OneDrive for Business コネクタ — Microsoft Learn

関連記事