Power Automate Desktop:「空の変数」を作るときのクセ ~ 変数の設定アクションを使いこなす
Power Automate Desktop(PAD)には、リストやデータテーブルを作るための専用アクション(「新しいリストの作成」「新しいデータ テーブルを作成する」)が用意されています。ただし、これらの専用アクションには細かい制約があり、「変数の設定」アクションを使ったほうが柔軟に、かつ意図通りの空の変数を作れる場面があります。
この記事では、リストとデータテーブルそれぞれについて、専用アクションと「変数の設定」アクションの違いを整理します。
1. 空のリストを作る
専用アクション「新しいリストの作成」
PADには「新しいリストの作成」という専用アクションがあり、これを使うと空のリスト変数(例では MyList)を簡単に作成できます。
シンプルな空リストを作るだけであれば、これで十分です。
「変数の設定」アクションで空リストを作る
同じことは「変数の設定」アクションでも実現できます。値の欄に %[]% と入力するだけで、空のリスト変数を作成できます。
作成した変数には、通常どおり「リストに項目を追加」アクションで要素を追加していけます。
複数項目をまとめて設定する場合の注意点
「変数の設定」アクションでは、値の欄に %['項目1', '項目2', '項目3']% のようにリスト形式で書くことで、複数要素を持つリストを一度に作ることもできます。
ただし注意したいのは、これは「追加」ではなく「上書き」だという点です。既存の変数に対してこの書き方で値を設定すると、それまでの中身はすべて破棄され、指定した内容で置き換わります。ループの中で少しずつ要素を積み上げていきたいような場面では、この方法ではなく「リストに項目を追加」アクションを使う必要があります。
2. 空のデータテーブルを作る
専用アクション「新しいデータ テーブルを作成する」の癖
データテーブルにも専用アクション「新しいデータ テーブルを作成する」があります。編集画面で列名や行を指定できますが、ここにはいくつかの癖があります。
- 列名を動的に(フロー実行時に変数の値を使って)指定するのが難しいです。UI上で列名をあらかじめ手入力する前提の作りになっています。
- 実行結果を見ると、指定した列に加えて、中身が空の行が1行、自動的に追加されてしまいます。
上の画像のように、ID / TestColumn / ThirdColumn という列を作っただけのつもりでも、インデックス0の空行が最初から存在してしまっています。この余計な1行は、後続処理でループ回数がずれたり、空行の存在を意識した分岐が必要になったりと、地味に厄介な問題を引き起こします。
データテーブルから空の行を削除するアクションもありますが、どうせなら少しでもアクションを減らしたいものです。
「変数の設定」アクションでデータテーブルを作る
これも「変数の設定」アクションを使うことで解決できます。値の欄に、次のような書き方でデータテーブルを表す値を指定します。
%{ ^['ID', 'Title', 'rtc_id'], }%
この書き方のポイントは次の2つです。
-
^['列名1', '列名2', '列名3']の部分はリストなので、変数を使って列名を組み立てるなど、動的な列名指定が可能になります。 - 出来上がるデータテーブルには、専用アクションのときのような余計な空行が入りません。指定した列だけを持つ、まっさらなデータテーブルになります。
実際に作成された変数の中身を確認すると、ID / Title / rtc_id の3列があるだけで、行は1つも存在しません。
専用アクションの結果(画像7)と見比べると、行の有無の違いがよくわかります。専用アクションでは常に1行分のプレースホルダーが入ってしまうのに対し、「変数の設定」アクションでは純粋に列定義だけのデータテーブルを作れます。
3. まとめ
| 作りたいもの | 専用アクション | 「変数の設定」アクション |
|---|---|---|
| 空のリスト | 新しいリストの作成 | %[]% |
| 複数要素のリスト | (項目追加を繰り返す) |
%['a', 'b', 'c']%(既存変数への設定は上書きになる点に注意) |
| 空のデータテーブル | 新しいデータ テーブルを作成する(列名固定・空行が1行できる) |
%{ ^['col1', 'col2', 'col3'], }%(列名を動的指定でき、空行もできない) |
専用アクションはGUIで直感的に使える反面、「列名を動的に決めたい」「余計な空行を入れたくない」といった細かい要求には応えにくいです。そうした場面では、「変数の設定」アクションの式(%[]% や %{ ^[...], }% のような書き方)を知っておくと、より意図通りの空の変数を作ることができます。







