🏃♂️
PAD:Power Automate Desktop - ListとDatatableの使い分け
はじめに
Power Automate Desktop:PADで扱うものにはListとDatatableで操作できるアクションがあります。
CSV化を例に実装をしてみます。
シナリオの実装
Listを使う
Google Sheetからクリップボードにコピーしたデータは
改行(行)とタブ区切り(列)でセルが分割されています。
実装の方針は
- クリップボードの内容を行で分割する
- 取得した行をタブで分割してリストにする
- リストにしたデータをファイルへ行数分書き込む
行で分割する
クリップボードにあるのは改行を含むテキスト値です。
次のアクション:テキストの分割を選びます。
分割されたクリップボードのテキスト値はリストに保存されます。
タブで分割する
テキストの分割を使ってタブで分割します。
リストになった行データになりました。
行の個数分タブで区切られていることがわかります。
CSVに書き込み
指定したファイルが存在しない場合は作成され、すでに存在している場合は追記されます。
Datatableを使う
一行ごとにファイルへのアクセスが発生するListの場合と違って
ファイルに書き込む回数を減らすことを目的にします。
Listの場合に比べて手順は増えて、実装コストは都合高くなります。
初期化について意識する必要がでてきます。
いろんな実装フローが想定できます。
一例では
- クリップボードのテキストから行に分割し、さらにタブ区切りされたセルデータをリスト化する
- リスト化したデータの列の数を数え、列ヘッダーを作成する
- Datatable用に列ヘッダーを追加して変数を作成
- Datatableの変数にリストデータを行数分加算する
- 最後にCSVファイルへ書き出す
Datatableの扱い
初期化
変数の初期化はアクションが別々にあります。面倒だと思ったら次のようにします。
List
Datatable
さいごに
全てがグローバル変数で扱われているので、初心者向けではありますが
終始、もっさりした使用感が付きまといます。
別のPCへの移行は同じIDで使うことでできるような仕様なんでしょうか。
バックアップへの不安が常に付きまとい、運用で使わせるのはきびしい。
サブフローの利用で軽くなればいいな。
本当に無料でできることや、課金して時限で実行させることができるツールとしては安価に
運用が可能な方だと思います。
Discussion