受信メールの本文をExcelへ1行ずつ記録する
Outlookのテスト用フォルダーからメールを取り出し、送信日時・差出人・件名・本文をExcelへ追記します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- 従来のOutlook for Windowsが必要です。新しいOutlookはデスクトップのOutlookアクションに対応していません。
- 受信本文は機密情報を含む場合があります。保存先を保護し、Excelのセル上限(32767文字)を超える本文は別ファイル化が必要です。
- 再実行は同じメールを重複記録します。業務利用ではメッセージ識別子を保存して重複チェックするか、保存成功後だけ処理済みフォルダーへ移す設計を追加します。
- Dateは送信日時です。受信日時と同じではありません。本文はBodyTextでプレーンテキストとして取得し、HTML形式のBodyと区別します。
1使うアクション
- アクション 1Excel の起動
- アクション 2アクティブな Excel ワークシートを設定する
- アクション 3Outlook を起動します
- アクション 4Outlook からメール メッセージを取得します
- アクション 5For each%RetrievedEmails% → %CurrentMail%
- アクション 6Excel ワークシートから列における最初の空の行を取得ループ内
- アクション 7Excel ワークシートに書き込むA・B・C・Dの4回。末尾のEndまでがループ
- アクション 8EndFor eachの終わり。ここまでがメールごとの処理
- アクション 9Excel を閉じる
- アクション 10Outlook を閉じます
表で見る入力と処理結果
架空データテスト用フォルダーのメール2件を、Logシートの空いている行へ4列ずつ追記します。
Desktop:Excelブック/ワークシート
Outlookの記録テストフォルダー → C:\Work\mail-log.xlsx/Log
以下は手順に沿った期待値です。実際のPower Automate・Excel環境で実行して確認した結果ではありません。セルや行の着目箇所には「●」を付けています。
取得元:架空のメール2件
| 取得順 | Date:送信日時 | From:差出人 | Subject:件名 | BodyText:本文 |
|---|---|---|---|---|
| 1 | 2026/10/01 09:00 | test1@example.com | 資料の確認 | 資料を確認しました。 |
| 2 | 2026/10/01 09:30 | test2@example.com | 納期の確認 | 納期を教えてください。 |
LogのA列で最初の空行を%FirstFreeRow%へ取得。同じ行のA~D列へ%CurrentMail.Date%、%CurrentMail.From%、%CurrentMail.Subject%、%CurrentMail.BodyText%を順に書きます。
処理前:Logは見出しだけ
| 行 | A:送信日時 | B:差出人 | C:件名 | D:本文 |
|---|---|---|---|---|
| 2 | ● | ● | ● | ● |
| 3 |
追記後:メール1件がExcelの1行
| 行 | A:送信日時 | B:差出人 | C:件名 | D:本文 |
|---|---|---|---|---|
| 2 | ● 2026/10/01 09:00 | ● test1@example.com | ● 資料の確認 | ● 資料を確認しました。 |
| 3 | ● 2026/10/01 09:30 | ● test2@example.com | ● 納期の確認 | ● 納期を教えてください。 |
1件目は2行目、2件目は3行目へ追記します。本文はD列の1セルに入り、ループ終了後にブックを保存します。
- 氏名・メールアドレス・本文・日時は架空です。日時の見た目はExcelの表示形式で変わります。
- 途中にA列の空白があると、その行が追記先になり得ます。A列は連続して記録してください。
- 従来のOutlook for Windowsが必要です。新しいOutlookはこのアクションに対応しません。
- 再実行すると同じメールを重複記録します。実運用では識別子による重複確認などを追加します。
- 本文は機密情報を含み得ます。保存先を保護し、32,767文字を超える本文は別ファイル化してください。
図で見る処理のイメージ
概念図Outlookのテスト用フォルダーからメールを取り出し、送信日時・差出人・件名・本文をExcelへ追記します。
受信データ
テストフォルダーのメール2件
1件ずつ
空行を探して4列へ記録
記録後
Excelにメール2行を追加
保存
ブック保存後に終了
本文文字列を1つのセルへ書き込む例です。
図は処理の流れを示した例です。実際の画面や実行結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する5ステップの設定と確認方法
- 1
C:\Work\mail-log.xlsx のLogシートに、A1:D1を「送信日時・差出人・件名・本文」として準備します。起動後 %ExcelInstance% のLogをアクティブにします。
- 2
Outlookを起動して %OutlookInstance% にします。アカウントと対象フォルダーを指定し、専用の「記録テスト」フォルダーのメールを取得します。取得時の既読化はオフ、結果は %RetrievedEmails% にします。
- 3
For eachで %CurrentMail% を受け取り、ExcelのA列の最初の空行を %FirstFreeRow% にします。A列に途中の空白を作らないようにします。
- 4
同じ行のAへ %CurrentMail.Date%、Bへ %CurrentMail.From%、Cへ %CurrentMail.Subject%、Dへ %CurrentMail.BodyText% を、4つの書き込みアクションで指定します。
- 5
For eachのEndの後にExcelを保存して閉じます。最後に、このフローで起動したOutlookを閉じます。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月11日