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(今回のサンプルの出力)
<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 や各サービスの仕様は今後変わる可能性があります。
※ 記事の構成・図解の一部は、AIを壁打ち相手にしながら作成しています。


コメント