Power automate excel データ取得 メール

Power automate excel データ取得 メール

この記事でわかること。

  • Power Automate Desktopを使ってOutlookにメールを送信する方法がわかる。
  • OutlookにExcel表(HTMLテーブル)を貼り付ける方法がわかる。

目次

PADでExcel表をメールに張り付ける方法は?

Power automate excel データ取得 メール
じょじお

以前の記事でExcelをメールに添付する方法を紹介しました。しかし、メール本文にExcelの表データを挿入したいときもあるかと思います。

Power automate excel データ取得 メール
ぽこがみさま

あわせて読みたい

Power automate excel データ取得 メール

【PAD】複数のファイルを添付してメールを送信する! この記事では、Power Automate for Desktop(以下:PAD)で、特定のフォルダ内の複数のファイルを添付してメールを送信する方法について解説します。 【作成するPower A…

Datatable(ExcelData)型変数をそのままメールに張り付けてもダメでした。

Power automate excel データ取得 メール

▲Power Automate DatatableでExcelを読み込むとDatatable型の変数が生成されます。まず思いつくのはDatatableを直接メール本文に挿入する方法ですが、この方法では表組みにはなりません。もちろんHTML形式のメールとして送信しています。

(解決策)DatatableからHTMLテーブルを作成します。

一つの方法として、Datatableデータをもとに、HTMLタグを使ってHTMLテーブルを表現する方法を思いつきました。HTMLテーブルは下図のように<table>タグなどを使って表現します。

Power automate excel データ取得 メール
HTMLテーブルの例
Power automate excel データ取得 メール
HTMLテーブルのHTMLソース
<table width="50%" cellpadding="0" cellspacing="0" border="1">
    <thead>
        <tr bgcolor="#eeeeee">
            <th>ヘッダーA列</th>
            <th>ヘッダーB列</th>
            <th>ヘッダーC列</th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <td>1行目A列</td>
            <td>1行目B列</td>
            <td>1行目C列</td>
        </tr>
        <tr>
            <td>2行目A列</td>
            <td>2行目B列</td>
            <td>2行目C列</td>
        </tr>
    </tbody>
</table>

HTMLがよくわかりません!

HTMLわからないという方は下記のサルワカさんの記事がわかりやすいです。HTMLを全部理解するのは大変ですが下記の記事だけ読めばとりあえずHTMLで表組する方法はなんとなくわかるかと思います。

サルワカ | サルでも分かる図解説…

Power automate excel データ取得 メール

表(table)の作り方と装飾の変え方【HTML&CSS】 HTMLのtableの使い方をまとめました。セルを結合する方法やCSSでデザインを変える方法(隙間や幅、枠線)まで解説しています。

Power Automate Datatableフローの作成手順

作成するフローの完成図

Power automate excel データ取得 メール
じょじお

図は作成するフローの完成図です。使用したアクションは16個です。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

Power automate excel データ取得 メール

フロー作成手順

STEP

使用するExcelファイルとゴール確認をします。

Power automate excel データ取得 メール

今回使用するのはこちらのダミーデータが表形式で記録されたExcelデータです。この表をメール本文に挿入してメール送信することを今回のゴールとします。

STEP

Excelを読み込むフローを作成します。

Power automate excel データ取得 メール

▲Excelを読み込む際のおきまりのアクションを追加します。(3行目まで)

個々のアクションの詳しい解説は下記の記事で紹介していますのでよくわからない方はそちらをご覧ください。

あわせて読みたい

Power automate excel データ取得 メール

【PAD】読み込んだExcel表を1行ずつループで取り出す方法の解説 この記事ではPower Automate for desktopでExcelを読み込んだ時に生成されるDatatable型変数をループで1行ずつ取り出す方法について学習します。 【前回のおさらい】 前…

STEP

For Eachアクションを追加します。

Power automate excel データ取得 メール

  • 反復処理を行う値:%ExcelData%
  • 保存先:%rowData%

このアクションを挿入すると「End」アクションも自動的に挿入されます。

STEP

For Eachアクションを追加します。(2個目)

Power automate excel データ取得 メール

  • 反復処理を行う値:%rowData%
  • 保存先:%cellData%

このアクションを挿入すると「End」アクションも自動的に挿入されます。

STEP

「変数の設定」アクションを追加します。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

  • 設定:%HtmlTableRow%
  • 宛先:別記

%HtmlTableRow + '<td>' + cellData + '</td>'%

Power automate excel データ取得 メール
じょじお

すべてのセルのデータを「<td>セルデータ</td>」のようにtdタグを付けてます。

STEP

「変数の設定」アクションを追加します。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

  • 設定:%HtmlTable%
  • 宛先:別記

%HtmlTable + '<tr>' + HtmlTableRow + '</tr>'%

Power automate excel データ取得 メール
じょじお

行ごとのデータに「<tr>セルデータ</tr>」のようにtrタグを付けてます。

STEP

「変数の設定」アクションを追加します。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

  • 設定:%HtmlTableRow%
  • 宛先:%””%

Power automate excel データ取得 メール
じょじお

行データを入れる変数HtmlTableRowを1行ごと処理がおわるごとに一旦空っぽにしてます。%%で””(空文字列)を囲んで挿入すると空っぽにできます。

STEP

「For each」アクションを追加します。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

  • 反復処理を行う値:%ExcelData.Columns%
  • 保存先:%header%

Power automate excel データ取得 メール
じょじお

%ExcelData.Columns%はDatatableのプロパティでヘッダー(列名)を取得することができます。

STEP

「変数の設定」アクションを追加します。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

%'<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"1\" >' + '<thead><tr bgcolor=\"#eeeeee\">' + HtmlTableHeader + '</tr></thead>' + HtmlTable + '</table>'%

ちょっとわかりずらいかと思いますが、HTMLテーブルをメールに渡す場合、CSSで装飾しておかないと表の枠線ですら描画してくれないのでwidth(表の幅)やBorder(枠線の太さ)、bgcolor(表の背景色)を指定しておかなければいけません。

例えばwidth=”100%”と指定するとき、PADでは文字列としてダブルクォーテーションを使用するときは\"100%\"のようにダブルクォーテーションの前にバックスラッシュ(あるいは¥マーク)を入力する必要があります。

ダブルクォーテーションを文字列として使うときはバックスラッシュを使う!

STEP

「Outlookを起動します」アクションを追加します。

Power automate excel データ取得 メール

STEP

「Outlookからのメールメッセージの送信」アクションを追加します。

Power automate excel データ取得 メール

Power automate excel データ取得 メール

  • Outlookインスタンス:%OutlookInstance%
  • アカウント:メールアドレスを入力します。
  • メッセージの送信元:アカウント
  • 宛先:宛先メールアドレスを入力します。複数ある場合はセミコロンで区切ります。
  • 件名:テストメールです。
  • 本文:別記
  • 本文はHTMLです:チェックオン

Power automate excel データ取得 メール
じょじお

かならず「本文はHTMLです」のチェックをオンにしましょう。

〇〇株式会社
<Br>
山田 様
<Br>
<Br>
いつもお世話になっております!
<Br>
ダミーデータを送信します。何卒宜しくお願いいたします。
<Br>
<Br>
%HtmlTable%
<Br>
<Br>
以上

▲メール本文はこちらの内容にしました。

STEP

フロー完成+テスト実行

Power automate excel データ取得 メール

フローを実行すると表が挿入されたメールを確認できるかと思います。テストで自分自身のアドレスに送ってみてください。

表の背景色を変更したいときは?

tableタグに使っているbgcolorなどのパラメータを調整してみてください。

Robinソースコード

Excel.LaunchExcel.LaunchAndOpenUnderExistingProcess Path: $'''C:\\Users\\user\\Desktop\\dummydata.xlsx''' Visible: True ReadOnly: True Instance=> ExcelInstance
Excel.ReadFromExcel.ReadAllCells Instance: ExcelInstance ReadAsText: False FirstLineIsHeader: True RangeValue=> ExcelData
Excel.CloseExcel.Close Instance: ExcelInstance
LOOP FOREACH rowData IN ExcelData
    LOOP FOREACH cellData IN rowData
        SET HtmlTableRow TO HtmlTableRow + '<td>' + cellData + '</td>'
    END
    SET HtmlTable TO HtmlTable + '<tr>' + HtmlTableRow + '</tr>'
    SET HtmlTableRow TO $'''%''%'''
END
LOOP FOREACH header IN ExcelData.Columns
    SET HtmlTableHeader TO HtmlTableHeader + '<th>' + header + '</th>'
END
SET HtmlTable TO '<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"1\" >' + '<thead><tr bgcolor=\"#eeeeee\">' + HtmlTableHeader + '</tr></thead>' + HtmlTable + '</table>'
Outlook.Launch Instance=> OutlookInstance
Outlook.SendEmailThroughOutlook.SendEmail Instance: OutlookInstance Account: `` SendTo: `` Subject: $'''テストメールです!''' Body: $'''〇〇株式会社
<Br>
山田 様
<Br>
<Br>
いつもお世話になっております!
<Br>
ダミーデータを送信します。何卒宜しくお願いいたします。
<Br>
<Br>
%HtmlTable%
<Br>
<Br>
以上''' IsBodyHtml: True

▲今回作成したフローのRobinソースコードです。Power Automate for desktopのフローデザイナーにこのまま貼り付けるとここで作成したフローを再現することができます。再利用するときはメールアドレスやExcelファイルなどのパラメータを調整して作成してください。

Excelの表を抽出してからメールに挿入したい。

あわせて読みたい

Power automate excel データ取得 メール

Excelを読み込んだ時に生成されるDatatableを加工する方法! この記事ではExcelを読み込んだ時に生成されるDatatableを加工する方法について学習します。 【Datatableを加工する方法】 STEPゴールを確認します。 C:\Users\user\Des…

▲Excel表を挿入するときに、Excel表をそのまま挿入するのではなく行のフィルタをするときは上の記事が参考になるかと思います。

関連記事

期間でメールを抽出する方法

Power automate excel データ取得 メール

PADでOutlookから期間を指定してメールを取得する方法 この記事ではPower Automate for desktopを使ってOutlookメールを期間していして取得する方法について学習します! 【「Outlookからメールメッセージを取得します」アク…

PADでOutlookマクロを実行する方法

Power automate excel データ取得 メール

Power Automate DesktopからOutlookマクロを起動する方法! Power Automate Desktop(以下:PAD)からOutlookマクロを実行する場合、専用のアクションが用意されていないため少し工夫する必要がありました。 この記事では、「アプ…

メール本文に画像を埋め込む方法

Power automate excel データ取得 メール

【簡単】メールやTeamsの本文中にローカルの画像ファイルを挿入する方法! この記事でわかること Power Automate for desktop(PAD)のBase64アクションの概要PADのBase64アクションを使ってメール本文にローカル画像を埋め込む方法Base64につい…

まとめ

Power automate excel データ取得 メール
じょじお

以上、Excel表データをメールに挿入する方法についてご紹介しました!

Power automate excel データ取得 メール
ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

Power automate excel データ取得 メール

¥2,200 (2022/11/22 08:56時点 | Amazon調べ)

Power automate excel データ取得 メール
ポチップ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power automate excel データ取得 メール

¥2,508 (2022/11/22 08:56時点 | Amazon調べ)

Power automate excel データ取得 メール
ポチップ

Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。

Power automate excel データ取得 メール

¥2,750 (2022/11/22 08:56時点 | Amazon調べ)

Power automate excel データ取得 メール
ポチップ

Power Automate クラウドフローの入門書です。初心者の方には図解も多く一番わかりやすいかと個人的に思っています。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。