Power Automateの選択(Select)→HTMLテーブル鉄板パターン。SharePointリストをそのまま表に変換する方法

選択(Select)→HTMLテーブルの組み合わせは、Power Automateのメール活用で一番使えるパターン

SharePointリストのデータをそのままメールの表として送りたい。Power Automateを使えばこれが自動化できますが、やり方を知らないとどうやってリストを表にするんだと詰まります。選択(Select)アクションでデータをHTMLテーブル向けに整形し、HTMLテーブル作成アクションで表を生成する、というのが定番の流れです。

流れの全体像

フローの構成はシンプルです。

  1. SharePointの「複数のアイテムの取得」で対象データを取得
  2. 選択(Select)アクションで必要な列だけに絞り込み・整形
  3. HTMLテーブルの作成アクションで配列をHTML表に変換
  4. メールの送信アクションでHTMLテーブルを本文に差し込む

選択(Select)アクションはSharePointから取得した配列から必要な列だけを取り出す整形役です。選択(Select)を挟まずにHTMLテーブルに渡すと、SharePointの内部フィールド(_uiVersionStringなど)も全部表示されてしまい、見た目がひどいことになります。

選択(Select)アクションで表の列を定義する

選択(Select)アクションのMapに、HTMLテーブルの列名と値を定義します。左側に列名(自由につけられる)、右側に動的コンテンツから列の値を入れます。

例えば未処理タスク一覧なら、こんな感じになります。

左(列名)右(値)
タスク名動的コンテンツ:Title
担当者動的コンテンツ:担当者 DisplayName
期限動的コンテンツ:期限日
ステータス動的コンテンツ:ステータス

選択(Select)の出力は整形済みの配列になります。これをそのままHTMLテーブルに渡します。

HTMLテーブルの作成アクション

HTMLテーブルの作成アクションの設定は実はシンプルです。差し込む値は1か所だけです。

  • 開始:選択(Select)アクションの出力(動的コンテンツ:出力)
  • 列:自動(選択(Select)で整形済みなのでそのまま使える)

列を「自動」にしておくと、選択(Select)で定義した列名がそのままHTMLテーブルのヘッダー行になります。列をカスタムにする必要はほとんどありません。

このアクションの出力はHTMLの<table>タグで囲まれた文字列になります。これをメールの本文にそのまま差し込めば表として表示されます。

メールの本文にHTMLテーブルを差し込む

OutlookやGmailのメール送信アクションで、本文をHTMLモードにしてHTMLテーブルの出力を差し込みます。Outlookの「メールの送信(V2)」アクションなら、本文フィールドの右上のアイコンでHTMLモードに切り替えられます。

本文の例はこうなります。

<p>本日の未処理タスク一覧です。</p>
[HTMLテーブルの作成 - 出力]
<p>よろしくお願いします。</p>

受信側のメールクライアントで表として見やすく表示されます。ただし表のスタイル(罫線・背景色など)はデフォルトでは最低限です。見た目を整えたい場合はHTMLテーブルアクションの出力を変数に受けてから、replaceを使ってstyleタグを差し込む方法もあります。

よくあるつまずきポイント

それぞれに適用(Apply to each)が自動挿入される

HTMLテーブルの作成アクションの差し込み先に配列(選択(Select)の出力)を入れる前に、それぞれに適用(Apply to each)が自動挿入されることがあります。これを防ぐには、差し込みに式で直接 outputs('選択') を指定する方法が有効です。動的コンテンツではなく式モードで入力するとループなしで渡せます。

日本語の日時フォーマットがずれる

SharePointの日付列をそのまま表示すると、UTC時刻で表示されることがあります。日本時間に直すには、選択(Select)のマップで式を使います。

formatDateTime(addHours(item()?['期限日'], 9), 'yyyy/MM/dd')

UTCに9時間を加算してから日本語形式にフォーマットする、という処理です。

選択(Select)アクションの詳細な使い方はこちらで解説しています。

Power Automateの選択(Select)アクション——配列から必要な列だけを取り出す整形術

まとめ

SharePointリストをHTMLテーブルにしてメール送信するには、「複数のアイテムの取得」→選択(Select)→HTMLテーブルの作成→メール送信、の4ステップが定番の構成です。選択(Select)で列を整形しておくことで、HTMLテーブルの列名まで自由に設定できます。

定時レポートや承認依頼一覧など、一覧を表形式でメール通知したいという場面で幅広く使えます。一度作ってしまえばあとは全自動なので、ぜひ試してみてください。

Xでフォローしよう