Power Automate Desktop 受信メールの内容をExcelブックに1行ずつ記録
受信メールの内容(件名、日時、本文、送信元アドレスなど)を
Excelブックに1メール1行ずつ記録するフローを紹介します。
フローの全体像
Outlook用
Outlook以外
Robin言語(コピー&ペースト用)
Power Automate Desktopにコピー&ペーストして利用可能です。
Outlook用
Outlook.Launch Instance=> OutlookInstance
Outlook.RetrieveEmailMessages.RetrieveEmails Instance: OutlookInstance Account: $'' MailFolder: $'''受信トレイ''' EmailsToRetrieve: Outlook.RetrieveMessagesMode.All MarkAsRead: True Messages=> RetrievedEmails
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''C:\\Test\\mail.xlsx''' Visible: False ReadOnly: False Instance=> ExcelInstance
SET Counter TO 2
LOOP FOREACH CurrentItem IN RetrievedEmails
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Date Column: 1 Row: Counter
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Subject Column: 2 Row: Counter
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Body Column: 3 Row: Counter
ON ERROR
END
Variables.IncreaseVariable Value: Counter IncrementValue: 1
END
Excel.CloseExcel.CloseAndSave Instance: ExcelInstance
Outlook以外
Email.RetrieveEmails.Retrieve IMAPServer: `` Port: 993 EnableSSL: True Username: `` Password: `` AcceptUntrustedCertificates: False MailFolder: `` MailsToRetrieve: Email.RetrieveMessagesMode.All MarkAsRead: True RetrievedEmails=> RetrievedEmails
Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''C:\\Test\\mail.xlsx''' Visible: False ReadOnly: False Instance=> ExcelInstance
SET Counter TO 2
LOOP FOREACH CurrentItem IN RetrievedEmails
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Date Column: 1 Row: Counter
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Subject Column: 2 Row: Counter
Excel.WriteToExcel.WriteCell Instance: ExcelInstance Value: CurrentItem.Body Column: 3 Row: Counter
ON ERROR
END
Variables.IncreaseVariable Value: Counter IncrementValue: 1
END
Excel.CloseExcel.CloseAndSave Instance: ExcelInstance
フロー作成
まず最初に「メール メッセージの取得」を設置します。
もし受信メールがOutlookに登録されているメールアドレスの場合、
「Outlook を起動します」と「Outlook からメール メッセージを取得します」に替わります。
もし日付を抽出条件にしたい場合はここでこちらと組み合わせます。
次に「Excelの起動」を設置して書き込み対象のファイルを指定します。
オプションは「読み取り専用として開く」オフ必須で、
動作を軽くするために「インスタンスを表示する」オフ推奨です。
次に「変数の設定」を設置しカウンター変数を作成します。
初期値をブックの最初のデータ行数(例では先頭行が1行あるため、2)、
変数名をCounterなどに設定します。
次にFor eachを設置し、反復を行う値に%RetrievedEmails%を指定します。
次にFor eachの中に「Excel ワークシートに書き込み」を記録する情報の数だけ設置します。
「Excel ワークシートに書き込み」のオプションは次のように設定します。
項目 | 設定値 | 備考 |
---|---|---|
書き込む値 | %CurrentItem.プロパティ% | プロパティはこちら(Outlookの場合)の中から選択します。 記録する代表的な項目は次の通りです。 .Body:メールの本文(HTML メール の場合、タグのまま) .BodyText:メールの本文 (HTMLメールの場合、タグが解釈されます) .Subject:件名 .From:メールの送信者 .To:メールの送信先 .Date:送信日付 |
列 | 書き込む列の番号 | A列を1とした連番 A列であれば1、B列であれば2… |
行 | %カウンター変数% | カウンター変数の部分は作成した変数名です。 |
次にFor eachの中に「変数を大きくする」設置してカウンター変数に1足します。
最後に「Excelを閉じる」を設置してExcelブックを閉じて終了です。
オプションの「Excelを閉じる前」は「ドキュメントを保存」に設定する必要があります。
Power Automate Desktopを効率的に習得したい方へ
当サイトの情報を電子書籍用に読み易く整理したコンテンツを
買い切り950円またはKindle Unlimited (読み放題) で提供中です。
Word-A4サイズ:1,700ページの情報量で
(実際のページ数はデバイスで変わります)
基本的な使い方から各アクションの詳細な使い方、
頻出テクニック、実用例を紹介。(目次)
体系的に学びたい方は是非ご検討ください。
アップデートなどの更新事項があれば随時反映しています。(更新履歴)
なお購入後に最新版をダウンロードするには
Amazonへの問い合わせが必要です。