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