業務効率化
PR

Power Automateでメール添付ファイルを自動保存する方法|Outlook→OneDrive/SharePoint

sanane
記事内に商品プロモーションを含む場合があります

はじめに

取引先から届く請求書や見積書の PDF を、毎回手作業で OneDrive や SharePoint に保存している——そんな地味で面倒な作業は、Power Automate で自動化できます。

「特定の差出人から添付ファイル付きメールが届いたら、その添付を指定フォルダーへ自動保存する」フローを作れば、保存のし忘れも場所のバラつきもなくなります。

本記事では、プレミアムライセンスなし・標準コネクタだけで、Outlook の添付ファイルを OneDrive(および SharePoint)へ自動保存するフローを、実際の画面つきで最初から最後まで解説します。添付の中身が空になってしまう定番のハマりどころも、確実に回避します。

こんな人にオススメ
  • 取引先から届く請求書・見積などの添付を毎回手で保存していて面倒
  • 特定の差出人のメールだけを対象に、添付を自動で保存したい
  • 保存先を OneDrive にするか SharePoint にするか、両方の設定を見比べたい
  • 過去に作ったら添付が空(0 バイト)になってしまった経験がある

Power Automateの基本・料金・他の実例一覧はこちら。

あわせて読みたい
Power Automateとは?できること・使い方・始め方を実例40本で解説
Power Automateとは?できること・使い方・始め方を実例40本で解説

完成イメージ:このフローがやること

今回作るのは「特定の差出人から添付ファイル付きメールが届いたら、その添付を OneDrive(と SharePoint)へ自動保存する」フローです。

メール 1 通に複数の添付があっても、「それぞれに適用する(Apply to each)」で 1 つずつループ保存します。

下の画像は実際のテスト実行結果で、添付 2 件分ループし、OneDrive・SharePoint への保存がどちらも成功(緑チェック)しています。

フロー実行詳細。それぞれに適用するが添付2件分ループし、OneDriveとSharePointのファイルの作成がどちらも成功した画面

フロー全体の構成

フローは次の構成です。保存先は OneDrive と SharePoint の両方を解説しますが、実際にはどちらか一方だけで構いません。自分の環境に合うほうを選んでください。

  1. 新しいメールが届いたとき (V3)(トリガー/Office 365 Outlook)… 差出人・添付で絞り込む
  2. それぞれに適用する(コントロール)… 添付ファイル配列をループ
  3. ファイルの作成(OneDrive for Business)… 添付を OneDrive に保存
  4. ファイルの作成(SharePoint)… 添付を SharePoint に保存(任意・併記)

フローの作成手順

① 自動化したクラウド フローを作成する

Power Automate(make.powerautomate.com)にアクセスし、左メニューの「作成」から「自動化したクラウド フロー」を選びます。

フローの作成画面で、自動化したクラウドフローを選ぶ

フロー名(例:メール添付ファイル自動保存)を入力し、トリガーの検索で「新しいメールが届いたとき」を探して、Office 365 Outlook の「新しいメールが届いたとき (V3)」を選択し「作成」をクリックします。

トリガー検索で Office 365 Outlook の新しいメールが届いたとき V3 を選択したダイアログ

② トリガーの基本設定(フォルダー=受信トレイ)

デザイナーが開いたら、トリガーのフォルダーが「受信トレイ」になっていることを確認します(既定で受信トレイです)。

トリガーのフォルダーが受信トレイに設定された状態

③ ★詳細オプションで「差出人」と「添付」を設定する(最重要)

ここが今回いちばん重要なポイントです。トリガーの「詳細オプションを表示」を開き、次の 3 つを設定します。

  • 差出人:対象にしたい差出人のメールアドレス(取引先など)
  • 添付ファイルを含める:はい ← これを忘れると添付の中身が取得できません
  • 添付ファイル付きのみ:はい ← 添付のないメールではフローを起動しない
トリガーの詳細オプション。差出人・添付ファイルを含める=はい・添付ファイル付きのみ=はいを設定した画面

「添付ファイルを含める」を「はい」にし忘れると、保存されるファイルが 0 バイト(中身が空)になります。これは添付自動保存フローで最も多いハマりどころです。この項目は添付の本体(ContentBytes)を取得するためのスイッチなので、必ず「はい」にしてください。

④ 「それぞれに適用する」で添付をループする

1 通のメールに添付が複数あることもあるため、「それぞれに適用する(Apply to each)」を追加し、添付を 1 件ずつ処理します。「前のステップから出力を選択します」に、トリガーの「添付ファイル」(Attachments)を指定します。

それぞれに適用するアクションで、対象にトリガーの添付ファイルを指定した画面

⑤ ループ内に OneDrive「ファイルの作成」を追加する

「それぞれに適用する」の内側に、OneDrive for Business の「ファイルの作成」を追加します。設定は次のとおりです。

  • フォルダーのパス:/(ルート。任意の既存フォルダーで可)
  • ファイル名:添付ファイルの「名前」(Name)
  • ファイル コンテンツ:添付ファイルの「コンテンツ」(ContentBytes)
OneDrive ファイルの作成で、ファイル名に添付の名前、コンテンツに添付のコンテンツを指定した画面

ファイル名とコンテンツは、動的コンテンツの一覧から「名前」「コンテンツ」を選びます。これらは「それぞれに適用する」の現在の項目(item)に属する値なので、ループの内側で追加すると候補に出てきます。手入力ではなく一覧から選ぶのが確実です。

OneDrive だけで十分な場合は、ここまでで完成です。⑥は SharePoint にも保存したい人向けの追加手順なので、不要なら読み飛ばして「⑦ 保存する」へ進んでください。

⑥【任意】ループ内に SharePoint「ファイルの作成」を追加する

保存先を SharePoint にしたい場合は、同じループ内に SharePoint の「ファイルの作成」を追加します。

  • サイトのアドレス:保存先の SharePoint サイト
  • フォルダーのパス:/Shared Documents(ドキュメント ライブラリの既存フォルダー)
  • ファイル名:添付ファイルの「名前」(Name)
  • ファイル コンテンツ:添付ファイルの「コンテンツ」(ContentBytes)
SharePoint ファイルの作成で、サイト・フォルダーのパス・ファイル名・コンテンツを指定した画面

SharePoint のフォルダーのパスは、ライブラリの内部名が日本語の「ドキュメント」ではなく Shared Documents になっていることがあります。「フォルダーを開く」アイコンから実際のパスを選ぶと確実です。

⑦ 保存する

右上の「保存」をクリックします。「フローを開始する準備ができました」と表示されれば、トリガーとループ内の保存アクションがエラーなくつながっています。

フローを保存し、開始する準備ができたと表示された状態

テストで動作を確認する

添付ファイル付きのテストメールを送る

動作確認は、自分のアカウントから自分宛てに添付付きメールを送るのが手軽で安全です(その場合、トリガーの「差出人」には自分のアドレスを入れておきます)。ここでは件名「【テスト】添付ファイル自動保存フロー確認」に、test-invoice.pdftest-report.txt の 2 つを添付して送信しました。

Outlook で添付2つを付けたテストメールを作成している画面

添付を 2 つ付けておくと、「それぞれに適用する」が 2 回ループする様子を実行履歴で確認できます。1 つでも動作確認はできますが、複数添付で試すとループの動きが分かりやすくなります。

実行履歴で「成功」を確認する

メールが届くと、数十秒〜数分でフローが自動起動します。フローの実行履歴を開き、状態が「成功」になっていることを確認します。

フローの実行履歴で状態が成功になっている画面

実行詳細を開くと、「それぞれに適用する」が添付 2 件分ループ(1/2)し、その中の OneDrive「ファイルの作成」と SharePoint「ファイルの作成」がどちらも緑チェック(成功)になっているのが分かります。

実行詳細でそれぞれに適用するが2件ループし、OneDriveとSharePointの保存が成功した画面

保存先を実地確認する

最後に、実際の保存先を見てみましょう。OneDrive を開くと、添付の test-invoice.pdftest-report.txt が保存されています。サイズも 0 バイトではなく、中身がきちんと入っています。

OneDrive に添付ファイル test-invoice.pdf と test-report.txt が保存された状態

SharePoint のドキュメント ライブラリにも、同じ 2 ファイルが保存されています。これで「届いた添付を 2 か所へ自動保存」まで通りました。

SharePoint のドキュメントライブラリに添付ファイルが保存された状態

応用:同名ファイルの上書きを防ぐ

毎月「請求書.pdf」のように同じ名前の添付が届く場合、そのまま保存すると後から来たファイルで上書きされてしまいます。これを防ぐには、ファイル名の先頭に受信日時を付けると、実行ごとに別ファイルとして残せます。

OneDrive / SharePoint「ファイルの作成」のファイル名を、次のような式に変更します(添付ファイル 名前 の部分は動的コンテンツの「名前」に置き換えてください)。

concat(formatDateTime(addHours(utcNow(), 9), 'yyyyMMdd_HHmmss_'), item()?['Name'])

これで 20260616_090000_請求書.pdf のように、先頭に日本時間のタイムスタンプが付き、上書きを防げます。

よくある質問

Q
プレミアムライセンスは必要ですか?

不要です。Office 365 Outlook・OneDrive for Business・SharePoint・コントロールはいずれも標準コネクタで、プレミアム扱いのアクションは使いません。

Q
保存したファイルが 0 バイト(空)になってしまいます。

トリガーの詳細オプションで「添付ファイルを含める」が「はい」になっているか確認してください。ここが「いいえ」のままだと添付の中身(ContentBytes)が取得されず、空のファイルが作成されます。

Q
メールが届いてもフローが起動しません。

「添付ファイル付きのみ=はい」にしている場合、添付のないメールでは起動しません。送ったメールに本当に添付が付いているか、また「差出人」フィルターが実際の差出人アドレスと一致しているかを確認してください。

Q
OneDrive と SharePoint、どちらか一方だけにできますか?

はい。本記事では両方を解説していますが、ループ内の「ファイルの作成」を片方だけにすれば、その保存先だけに保存されます。自分の運用に合うほうを選んでください。

Q
特定の件名のメールだけを対象にできますか?

できます。トリガーの詳細オプションにある「件名フィルター」に文字列を入れると、その語句を件名に含むメールだけが対象になります。差出人フィルターと併用すれば、より確実に絞り込めます。

まとめ

Power Automate でメールの添付ファイルを自動保存する基本は、「新しいメールが届いたとき (V3)」→「それぞれに適用する」→「ファイルの作成」の流れです。標準コネクタだけで作れて、プレミアムライセンスは要りません。

失敗しないための要点
  • 添付ファイルを含める=はい(これを忘れると中身が空になる)
  • 添付ファイル付きのみ=はい差出人で対象を絞る
  • 保存は「それぞれに適用する」の内側で、ファイル名=Name・コンテンツ=ContentBytes

この 3 点を押さえれば、請求書や見積などの添付を取りこぼさず、決まった場所へ自動で集約できます。まずは自己送信のテストで動作を確認し、慣れてきたら件名フィルターやタイムスタンプ付きファイル名など、自分の業務に合わせて拡張してみてください。

あわせて読みたい

Power Automateの全体像・基本・料金・実例一覧はこちらにまとめています。

あわせて読みたい
Power Automateとは?できること・使い方・始め方を実例40本で解説
Power Automateとは?できること・使い方・始め方を実例40本で解説

Formsの添付ファイルを保存したい場合はこちら。

あわせて読みたい
【Power Automate】Microsoft Formsの添付ファイル(ファイルアップロード)を自動で取得・保存する方法
【Power Automate】Microsoft Formsの添付ファイル(ファイルアップロード)を自動で取得・保存する方法

OneDriveへ保存する基本形はこちら。

あわせて読みたい
【Power Automate】自動でOneDrive上に今日のフォルダを作成してOutlookの添付ファイルを保存するフロー
【Power Automate】自動でOneDrive上に今日のフォルダを作成してOutlookの添付ファイルを保存するフロー

保存先をBoxにしたい場合はこちら。

あわせて読みたい
Outlookの添付ファイルを自動でBoxに保存する【Power Automate】
Outlookの添付ファイルを自動でBoxに保存する【Power Automate】
記事URLをコピーしました