Power Automate Desktop 受信メールの内容をExcelブックに1行ずつ記録

2023年3月3日

English version.

受信メールの内容(件名、日時、本文、送信元アドレスなど)を

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への問い合わせが必要です。

関連記事

実用例の記事一覧