Power Automate Desktop(PAD)で、データテーブルの行と列を入れ替える方法について解説します。
前提:Excelを使用してデータテーブルを操作する
まず前提として、PADのデータテーブルを操作するにはExcelを使用します。
というのも、PADで用意されているデータテーブルに関するアクションはそんなに豊富ではないためです。Microsoft公式においても、回避策として、いったんExcelに展開して、データテーブルに戻す方法が紹介されているほどです。(じゃあアクション充実させてよ!って感じですが)
データテーブルの作成
対象とするデータテーブルは以下とします。
行数を取得する
データテーブルの行数を取得しておきます。
「データテーブル名.RowsCount」で、データテーブルの行数を取得できます。
ここでは、Dt_Columns_Cntのほうにも行数が格納されていますが、のちほど行列を入れ替えたあとに使うため、これでOKです。
【ポイント】Excelを最前面に出しておく
Excel操作時は、Excelを最前面にしておくことをおすすめします。
本記事の内容では、特に、Excelのショートカットキーを使って画面を操作する場合などはExcelが最前面になっていないとエラーが発生します。
「ウインドウの検索モード」は「ウインドウのインスタンス/ハンドルごと」、
ウインドウインスタンスは、「Excelの起動」アクションを追加した際に生成されたExcelInstanceを設定します。
Excelワークシートにデータテーブルを書き込む
作成したデータテーブルを、Excelに書き込みます。
これでExcelのA1セルに、データテーブルの内容が転記されます。
行列の入れ替え
行列の入れ替えに関するフローは、以下のようになります。
最初の空白行・列を取得し、データテーブルが転記された範囲をコピーします。
入れ替えはショートカットキーで行う
Excel内での行列の入れ替えは、ショートカットキーを使用します。
Excelで行列を入れ替えて貼り付ける時のショートカットキーは、
- Alt
- H
- V
- S
- E
- Enter
です。これをキーの送信に設定していきます。
「送信するテキスト」に、大かっこを使って {Alt} {H} のように記載します。
参考:Microsoft Power Automate マウスとキーボードのアクション
ショートカットキーを実行すると、以下のように入れ替えた内容が貼り付けられます。
データテーブルにExcelの内容を戻す
最後に、データテーブルにExcelの内容を戻します。
「変数を大きくする」では、最初に取得したデータテーブル行数(Dt_Rows_Cnt)に、最初の空行(5行目 ※事前に1大きくしている)を足しているので、3 + 5 = 8 行目が最終行であると算出されます。
入れ替え後のデータテーブルの最初の行は、
- 先頭行:最初の空行(5行目 ※事前に1大きくしている) =5
- 最終列:最初に貼り付けたデータテーブルの列数 = 3
- 最終行:先ほど計算した、最初の空行+最初に貼り付けたデータテーブル行数 = 8
により、5行目から8行目を、3列分取り出すことができます。
動作確認
完成したフローを実行すると、以下のようになります。
行と列が入れ替わった、新しいデータテーブルが作成されました。
※「001」の0埋めがなくなっていますが、これは別途記事にして解説します
フロー全体(サンプル)
まとめ
今回は、Power Automate Desktop(PAD)で、データテーブルの行と列を入れ替える方法について解説しました。
データテーブルの行列を入れ替えるには、いったんExcel上に展開し、Excelのショートカットキーで行列入れ替えして貼り付け、そしてデータテーブルに戻すという、やや面倒な手順となります。
もし、本記事のなかで分からないことや、「こんな処理を実現したいんだけど、どうやるの?」といった質問などがありましたら、お気軽にコメントいただければと思います。問い合わせフォームからご連絡いただいてもかまいません。
コメント