Power Automate|HTMLテーブルが作れない原因は「動的コンテンツの仕組み」にある

Power Automate 実践・Tips

Power Automate|HTMLテーブルが作れない原因は“動的コンテンツの仕組み”にある。はじめて使う方が絶対につまずくポイントをサンプルフローで解説

Power Automate を使い始めると、最初に必ずぶつかる壁があります。
それは、「動的コンテンツどれを選べばいい問題」 です。

特に、今回のように SharePoint の一覧 → Select → HTMLテーブル の構成でフローを作ると、
“必要な値が動的コンテンツに出てこない” という現象が起きます。

この記事では、はじめて使う方が迷いやすいポイントを
「前提 → 流れ → つまずき → 原因(内部構造) → 解決」
の順で、丁寧にわかりやすく解説します。


① 今回のサンプルフロー(前提の流れ)

まずは今回のフロー全体像です。

1. SharePoint:複数の項目の取得(Get items)
2. Select:欲しい列だけに整形(名前 / 部署 / 年齢)
3. HTMLテーブルの作成:配列を表に変換

最終ゴールは
「一覧をキレイなHTMLテーブルでメール配信すること」。


② SharePoint → Select を使う理由(なぜこの流れなのか)

SharePoint の “複数の項目の取得(Get items)” は、実は次のような構造を返します。

body(出力)
├─ @odata.context
├─ メタ情報いろいろ
└─ value  ← ★ここだけが「レコードの配列」
  • body:メタ情報+配列が混ざった“かたまり”
  • value:必要なレコードだけが入った純粋な「配列」

そして HTMLテーブルが必要としているのは
この value の “配列” の部分だけ です。

結論だけコピー
HTMLテーブルに渡すのは「出力項目(value)」。
body ではなく value が純粋な配列だから。

③ Select で“必要な列だけ”に整形する

Get items の value は列が多く、そのままHTMLにすると読みにくいので
Select で次のように整形しました:

[
 { "名前": "太郎", "部署": "営業", "年齢": 25 },
 { "名前": "花子", "部署": "総務", "年齢": 30 }
]

つまり、Select の出力は “シンプルで見やすい配列” です。


④ HTMLテーブルを作るときに起きる「動的コンテンツ迷子」現象

→ 関連記事:「【Vol.1】Copilot Studio × Power Automate × Word連携 つまずきポイント3選」

HTMLテーブルでカスタム列を作ろうとすると、
右側の動的コンテンツに 「名前」や「部署」 が出てこない…
こういうことが起こります。

ここがはじめて使う方が最も混乱するポイント。

なぜ Select のプロパティが出ないのか?

理由はシンプルで、Power Automate の動的コンテンツは
「構造(スキーマ)が確定している出力」しか出さない 仕組みだから。

  • Get items → SharePointが構造を知ってる → 動的コンテンツに出る
  • Select → ユーザーが自由に作るJSON → 構造が確定しない → 出てこない
要点をコピー
動的コンテンツに出るのは「構造が確定したデータ」だけ。
Select は自由形JSONなので、右の一覧に出ない(正常仕様)。

⑤ さらにややこしくする“階層問題”(ForEachの中か外か)

HTMLテーブルを誤って ForEach の中に入れると、
「現在のアイテム」しか見えない世界 になります。

Select の“配列全体”が参照できなくなるため、
動的コンテンツに出てくる値がまったく違う のです。

今回のケースでも、Select の項目が見えずに SharePoint の値だけが出ていたのはこれが理由です。


⑥ 正しい解決策(つまずき解消)

→ 関連記事:「Power Automate【変数の値を増やす】アクションの使い方を業務に役立つ具体的なフローで解説」

① HTMLテーブルは ForEach の外に置く

配列を一括でHTML化できるので、ループ不要です。

② From に入れるのは Select の “出力”

From → 選択(Select)の 出力

③ Columns の Value は「式」で書く(動的コンテンツは使わない)

→ 関連記事:「Power Automate:変数を使ってあいさつメッセージを送る方法。
変数の初期化と変数の設定。
」

この式をコピー
item()?['名前']
item()?['部署']
item()?['年齢']

動的コンテンツに出てこないのは仕様なので、
式で書くのが正しいアプローチ です。


⑦ 実際の完成HTML(今回のサンプルの出力)

HTMLをコピー
<table><thead><tr><th>名前</th><th>部署</th><th>年齢</th></tr></thead>
<tbody>
<tr><td>太郎</td><td>営業</td><td>25</td></tr>
<tr><td>花子</td><td>総務</td><td>30</td></tr>
</tbody></table>

⑧ まとめ:はじめて使う方が混乱しやすいポイントはここ

  • Get items の “body” は複雑、必要なのは “value(配列)”
  • Select の出力はスキーマ不明 → 動的コンテンツに出ない(正常)
  • ForEach の中か外かで見える値が変わる
  • HTMLテーブルは配列一括処理 → ループ不要
  • Columns の Value は “item()?[‘名前’]” で指定

この理解があるだけで、Power Automate の“動的コンテンツ迷子”から一気に抜け出せます。

“

💌

最新のPower Automate Tipsを毎日チェック

1枚スライドで関数・概念をわかりやすく解説しています。


@isamu_Automate をフォロー

⚡

PA45 — 45分でPower Automateを一緒に学ぼう

毎週木曜夜・オンライン・無料のハンズオン講座。初心者歓迎。


次回PA45に参加する

※ 本記事は公開日時点の内容です。筆者が実際に試した手順をまとめたもので、Power Automate や各サービスの仕様は今後変わる可能性があります。
※ 記事の構成・図解の一部は、AIを壁打ち相手にしながら作成しています。

\ 最新情報をチェック /

💌

最新のPower Automate Tipsを毎日チェック

1枚スライドで関数・概念をわかりやすく解説しています。

𝅧 @isamu_Automate をフォロー →
⚡

PA45 — 45分でPower Automateを一緒に学ぼう

毎週木曜夜・オンライン・無料のハンズオン講座。初心者歓迎。

次回PA45に参加する →

コメント

PAGE TOP