Power Automateを動画で学ぼう!Udemyキャンペーン中

Power AutomateでメールにMicrosoft Listsの表を挿入する方法

目次

はじめに

Power Automateを使って、Microsoft Lists(Sharepointリスト)の表からHTMLテーブルを作成してメール本文に挿入する方法について解説します。

Microsoft Lists
Microsoft Listsのサンプル

▲今回はこちらのテスト用のリストを使って解説します。

HTMLテーブルの作成に必要なアクション

下記の3つのアクションを使います。

  • 「複数の項目の取得」アクションの設定
  • 「HTMLテーブルの作成」アクションの設定
  • 「Outlookメールの送信」アクションの設定
  1. 「複数の項目の取得」アクションでMicrosoft Listsのデータを取得します。
  2. 取得したデータをもとに、「HTMLテーブルの作成」アクションにてHTMLテーブルを作成します。
  3. 作成したHTMLテーブルをメール本文に挿入します。

「複数の項目の取得」アクションの設定

フローを作成します。今回はテストとして、インスタントクラウドフローの「モバイルのボタンを押したとき」をトリガーにして新しいフローを作成しました。そこに下記を追加します。

STEP
「複数の項目の取得」アクションを追加します。
Power Automate

▲新しいステップをクリック

Power Automate

▲Sarepointコネクタをクリックします。

Power Automate

▲「複数の項目の取得」アクションを追加します。

STEP
「複数の項目の取得」アクションのパラメータを設定します。
Power Automate

▲「複数の項目の取得」アクションのパラメータを下記を参考に入力します。

  • サイトのアドレス
    • Microsoft Listsが保存されているSharepointサイトを選択します。
  • リスト名
    • Microsoft Listsの名前を選択します。
  • フィルタークエリ
    • 行をフィルターしてデータを取得します。
  • 並び替え順
    • 昇順・降順で並び替えしてからデータを取得します。
  • 上から順に取得
    • 数値を指定して上位何番目のデータを取得するか指定します。10と指定すると10行目までを取得します。
  • ビューによる列の制限
    • Microsoft Listsに事前に設定済みのビューを使用して列を絞ってデータを取得します。

▼フィルタークエリの指定方法と、並び替え順の指定方法は下記の記事で解説していますのでそちらをご覧ください。

フィルタークエリを空欄にすると警告が表示されます。
Power Automate フィルタークエリの警告

▲テストの時は問題がないかと思いますが、フィルタークエリを空っぽにすると動作はするものの、フローの保存の時に図の警告メッセージが表示されます。パフォーマンスの低下の原因となるためフィルタークエリは本番環境では指定しましょう。データ量が多い時は特に注意してください。

「HTMLテーブルの作成」アクションの設定

STEP
HTMLテーブルの作成アクションを追加します。
Power Automate

▲新しいアクションを追加します。

Power Automate

▲データ操作コネクタをクリックします。

Power Automate

▲HTMLテーブルの作成アクションをクリックします。

STEP
「開始」欄に「複数の項目の取得」の出力値「value」を入力します。
Power Automate

▲「開始」欄のテキストボックスの中の動的コンテンツをクリックします。

Power Automate

「複数の項目の取得」の出力値「value」を選択します。似たような値として「body」がありますが、こちらはオブジェクト型の変数となるためこのアクションで使用することができません。こちらを選択するとエラーになってしまいますので注意してください。

STEP
「列」の値を入力します。
Power Automate

▲「列」欄をクリックして「カスタム」をクリックします。

Power Automate

▲表を作成します。左側のヘッダー欄は任意のヘッダー名を設定します。右側にヘッダーに対応するデータを「動的コンテンツ」から選択します。

今回のデータはテーブルが7列あるのですが、そのうち3列だけピックアップして表を作成してみました。

「列」の値は手動設定しましょう!

「列」の値を「自動」にすることは、オススメしません!

今回のように列を絞らずに、リストの列すべて使う場合、「自動」を選択してしまいがちですが、ココを自動にするとメタデータまで含んだ非常に冗長的な見づらい表になってしまいます。(下図)

Power Automate
列を自動にして出力したHTMLテーブル
ぽこがみさま

余計な列が増えているし、ヘッダーに日本語の列名を使っている場合、列名が記号の羅列になってしまい非常にみづらいですね。

Outlookメールの作成

CSSとHTMLテーブルの挿入

STEP
「メールの送信」アクションを追加します。
Power Automate

▲Outlook365コネクタを選択します。

Power Automate

▲メールの送信アクションを追加します。

STEP
コードビューモードに変更します。
Power Automate

HTMLタグを埋め込むためにコードビューモードにします。本文のところのコードビューアイコンをクリックして、

STEP
メールの設定をします。
Power Automate

▲図のように宛先、件名、本文を挿入します。本文には「HTMLテーブルの作成」の出力変数を挿入します。

また、表の見た目を整えるために、CSSをメール本文の最初に指定しました。

<style type="text/css">
    table th{/*header color*/
        background: yellow;
    }
    table th, table td {
        border: solid 1px black;
    }
</style>

テスト実行結果

下図のようにメール本文にHTMLテーブルを挿入できました。

Power Automate HTMLテーブルの作成

合計価格の小数点以下の桁数がおかしいですね・・・・。これはまた別の機会に修正してみたいと思います!

HTMLテーブルをTeamsにも送信したい場合は?

Teamsにも送信してみたのですが、送信したメッセージを見ると下記のように罫線が消えてしまいました。

Teams

▲コピペしてテキストエディタに張り付けてみると表組みにはなっていましたので、CSSがうまいこと適用されていないようです。CSSを変更してみたらいくのかな?それともマークダウン記法で試してみるか・・・。こちらはまた別の機会にトライしてみたいと思います!

追記2021/09/29

Teamsコネクタからメッセージを送信するのではなく、メールでTeamsのチャネルのメールアドレスに送信すると表が綺麗に表示されました

メールからTeamsにHTML表を送信する。

具体的には上で紹介したOutlookメール送信アクションの宛先メールアドレスに、チャネルのメールアドレスを含めます。複数のメールアドレスを指定する場合は、メールアドレスを「;」セミコロンで区切ってくださいね。

Teamsのチャネルのメールアドレスの取得方法については下記の記事で紹介していますのでご覧ください!

まとめ

Microsoft Lists(Sharepointリスト)をHTMLテーブルに変換してメール本文に挿入する方法について解説しました。

  • Microsoft Listsの情報を取得するには「複数の項目の取得」アクションを追加する。
  • HTMLテーブルを作成するには、「HTMLテーブルの作成」アクションを追加する。
  • 行で情報を絞るには、フィルタークエリを使用する。
  • HTMLテーブルの作成アクションで必要な列だけを抽出する。

Power Automate学習教材

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

▲Power AutomateのKindle書籍です。

▲Kindleと紙媒体両方提供されています。クラウドフローもデスクトップフローも、どちらも自動化したい方におすすめです。

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

▲Udemyで唯一のPower Automateに関する講座です。セール時は1500円~2000円弱の価格になります頻繁にセールを実施しているので絶対にセール時に購入してください。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

ノンプログラマーでも自動化スキルを身につける。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
目次
閉じる