便利な機能が増えました
2024年6月 Power Automate for desktop更新内容をご紹介

公開日

はじめに

Power Automate for desktop(PAD)利用者の皆さんへ

MicrosoftのRPAツール Power Automate for desktop(以下PAD)には毎月、機能のアップデートがあります。
6月の機能追加は、私たちにとって便利なものが特に多かったので、ぜひシェアしたいと考えました。

なかでも紹介するのは、

  • Excelの新アクション
  • データテーブル変数の新アクション
  • フローのタイムアウト

の3つです。
これまでは難しかった事・諦めていた事が簡単に出来るようになるケースもあるでしょう。
読んでみて、ピンと来たものは試してみてください。

困ったときはPADの経験・実績豊富な、KMDS業務プロセス改善推進グループにお問い合わせください。
日々の仕事を効率化できるきっかけになればと思います。

Excelの新アクション

新しいExcelアクションは6種類です。いずれもExcelグループ内の、さらに『詳細』を開いたところにあります。
ここでは、「Excelワークシートをコピー」「Excelワークシートの検索範囲」を取り上げます。

  • Excelワークシートをコピー
    (後述します)
  • Excelから式を読み取る
    (その名の通りなので省略します)
  • テーブル範囲をExcelワークシートから取得する
    (テーブル名を指定して、テーブル範囲の起点・終点の行・列番号を割り出せます。)
  • Excelワークシート内のセルを自動入力する
    (元範囲を指定して値を読み取り、別の範囲に一括入力できます。コピペに近い感じです。
    元範囲で式を読み取った場合、入力先のセル位置に応じて相対参照でズラしてくれます。)
  • Excelワークシートのセルを追加
    (クリップボードに保持しているコピーを、指定列の最初の空行から貼り付けられます。
    既存の空行の取得と、値の書き込みアクションを一つにしたようなものと言えば良いでしょうか。
    うまく使えば繰り返しを避けて、処理の高速化が出来るだろうと思います)
  • Excelワークシートの検索範囲
    (後述します)
List of Excel Actions
新しいExcelアクションは6種類あります

Excel内のシートを指定して、新しいファイルにコピーしたり、同じファイル内で最後にコピーして名前を変更したり、、、。
ふだんのExcel操作でよくやりますよね。

こんな当たり前のことが、これまでPADではすんなり行きませんでした。
ファイルをコピーしてから指定のシート以外を削除したり、スクリプトを書いたり、と難しいやり方で何とかしていました。 

これからは、ごく普通にシートのコピーが出来ます。やっとかよ、、、とも思いますが良かったですね。

Copy Worksheet Setting
Sheet1を別ファイルの最後にNewWorkSheetという名前でコピーしています

日本語アクション名が少々わかりにくいですが、要するにLookupです。
例えば、A列からある値を検索し、値が見つかったらその行のC列の値を割り出す、といったことが出来ます。

もちろん従来も出来ましたが、ちょっとややこしい仕方でした。
このアクションで、Excelの感覚に近づいたので、扱いやすくなりそうです。

<サンプル> 
下図のサンプルデータで、A列のBooking番号 KKK15976 で検索して、C列のShipper名 SOME ENTERPRISE を割り出したいとします。
探したいのは、赤くハイライトした部分です。

Excel Sample for Lookup
A列から一致する値を検索し、見つかった行のC列を割り出す

その場合、アクションの設定は下図のようになります。

検索値 : KKK15976 
先頭列・行/最終列・行 : A4~A11
結果のソースの開始列・行/結果のソースの最終列・行 : C4~C11

これを実行すると、フロー変数 LookupResult は、SOME ENTERPRISE になります。

PAD Lookup Setting

または、「配列形式」をオンにして、先頭列・行 ~ 最終列・行 を A4~C11 にしてもOKです。
この場合は、指定範囲の最初の列(つまりA列)から値を検索して、見つかったらその行の最後の列(つまりC列)の値を返します。

配列形式をONにした場合。こっちの方が設定が楽ですね。

データテーブルの新アクション

まずデータテーブルについて簡単に説明しましょう。
そもそもデータテーブルとは、PAD内で扱う表形式のデータ(変数)のことです。

PADでExcelから表データを読み取る・PDFから表を読み取る・Webページから表を読み取る、、、等々なんでもいいです。
これら表に関わるアクションを行うと、「データテーブル」と呼ばれる形式でPADに一時保存されます。

このデータテーブルの状態で編集や加工を行うと、わざわざPADでExcelを操作するよりも高速・安定して処理することが出来ます。
加えて、読み取る前の元データには手を付けなくて済むので、誤編集を気にせずテストすることが可能です。
ですから、データテーブルのアクションで出来ることは、なるべくデータテーブルで済ませた方が良いと言えます。

ところが、これまでデータテーブルに対して行える操作の種類は限られていました。

(※ データテーブル変数をさらに詳しく知りたい方は、小技記事 PAD変数シリーズの第2回 をどうぞ) 


今回のバージョンアップで追加されたデータテーブルアクションは、以下の通りです。
11個も新規追加されました。場所は、変数 > データテーブル を拡げたところにあります。

これらのうち、ここではよく使いそうな フィルター データテーブルデータテーブルを結合する を取り上げます。

  • 列をデータテーブルに挿入する
    (表に列名を指定して、列を追加します。)
  • データテーブルから列を削除する
    (上記 列の挿入 の逆です。
    表から列名、または左から数えた列番号を指定して、列を削除します。)

    注意:アクションの日本語訳が間違っており、「データテーブルからを削除する」になっています。(24年7月時点)
    ややこしいことに、これとは別に同名で、本物の行を削除する既存アクションもあります。。。
    なので、上から2番目のデータテーブル行を削除するアクションは、実際には列削除 と覚えておきましょう。
    そのうち修正されると思います。
  • データテーブルから空の行を削除する
    (指定したデータテーブルから空の行を削除します。)
  • データテーブルから重複行を削除する
    (指定したデータテーブルから、重複行を削除します。
    列の指定はできず、表全体での重複削除のみです。)
  • データテーブルを消去
    (データテーブルからデータをクリアして、見出しのみにします。
    既存データをリセットして、新たにデータ追加したいときに使うと良いでしょう。)
  • データテーブルを並び替える
    (列名を指定して、昇順・降順で並び替えが出来ます。)
  • フィルター データテーブル
    (後述します)
  • データテーブルをマージする
    (二つのテータテーブルを、積み重ねます。
    1番目のデータテーブルに対して、新規の行として2番目のデータテーブルを追加するイメージです
    (列名・列数が同じである前提です)。
    ExcelのVSTACKとほぼ同じですね。
    マージモードは、とりあえず「追加した列を無視」を選びましょう。)
  • データテーブルを結合する
    (後述します)
  • CSVテキスト変数から読み取る
    (テキストとして読み取ったCSVデータを、データテーブルに変換します。)
  • データテーブルをテキストに変換する
    (上記 CSVテキスト読み取りアクションの逆です。
    データテーブルを、CSV出力できる区切り記号付きのテキストに変換します。)
List of Datatable Actions
11種類追加されました。誤訳は早く直してほしいですね。。。

Excelのフィルターと同じことをデータテーブルに対して行うことが出来ます。

逆に言うと、これまではそんなことすら簡単にできなかったわけですが、、、。
フィルターした結果データは、FilteredDataTableに保存されます。

アクションを配置したら、データテーブルを選び、「適用するフィルター」右横の編集ボタンをクリックします。

Filter setting screen

すると、フィルター条件を指定できますので、列名や演算子(イコールなど)、値を入力します。
複数条件を入れる場合は、左下の+プラスボタンで行を追加します。
条件を入れたら完了を押して、前の画面に戻ります。

Filter Edit Screen

※ フィルターアクションの注意:
試しにExcelから数値の列を読み込んで、「より大きい(>)」 のような大小比較を行ったところ、数値として認識されませんでした。
Excelから読み取ったデータテーブルは、数値ではなくテキスト型として解釈されてしまっているようです。

面倒ですが回避策は、 ①空の列を新たに追加して、②元の数値列テキストを数値に変換し、③その値を新たな列に書き込みます。
これではじめて数値の大小比較が出来ます。
そのうち修正されるかもしれませんが、24年7月時点ではこのようになっていることを覚えておきましょう。

二つのデータテーブルを、キーとなる列項目を元に、くっつけることが出来ます。
要するに、ExcelのVLOOKUPやPower Queryのマージ、あるいはSQLのJoinと同じことが出来ると考えてください。
くっつけた結果データは、JoinedDataTable に保存されます。

<サンプル> 
①黄色の表 ExcelData と ②緑の表 ExcelData2をくっつけたい。
①のDestinationをキー列にして、②のPort列に一致する値がある場合に、COUTRY/REGION列を取ってくる。

Join sample data

この場合、アクションの設定は下図のようになります。

最初のデータテーブル : ExcelData 
2番目のデータテーブル : ExcelData2
結合操作:左

ルールを結合する(結合するルールの誤訳?):編集ボタンをクリック

Join Setting Screen

編集ボタンで開いた結合するルールの設定は、以下の通りです。

左側の列名またはインデックス:①のキー列名 今回はDestination 
条件付き:と等しい(=)
右側の列名またはインデックス:②のキー列名 今回はPORT

※ 結合するためのキーが複数列に渡る場合は、左下の+プラスボタンで行を追加します。

Edit Join Setting

実行結果は以下の通りになります。赤枠部分がExcelData2から取ってきたものです。
Destination = NEW WESTMINSTERは、一致する値がなかったため、空白になります。

Joined Data Result

このように、PAD上でキー列による結合が出来るため、大変便利です。
Excel同士だけでなく、Webページから読み取ったテーブルや、PDFから読み取ったテーブルに対しても同じことが出来ます。

フローのタイムアウト

最後はフローのタイムアウトです。
何かのフローを実行して、エラーにもならずに、ずーっと作動し続けてしまうことがあります。

典型的なのは、UI要素の XXボタン が出現するまで待機する、といったアクションを配置しているのに、
そのXXボタンが全く出現しないレアケースに遭ってしまったときなどですね。
フローは止まらずに、延々とXXボタンを待ち続ける状態に陥ってしまいます。

こういうときは新機能フローのタイムアウトを設定しましょう。

※ なお、この機能を使うには、有償のプレミアムライセンスが必要です。
(またはプレミアム機能の試用期間に参加する必要あり)

やり方は、メニュー画面から作成済みフローを選んで、ⓘボタンでプロパティのサイドパネルを表示させます。
下の方に行くと、フロータイムアウトがあるので、これをONにして、時間を設定して、保存します。

下の例では15分に設定しているので、フローを実行して15分経過したら、強制終了してくれます。

Flow Timeout

もしフロータイムアウトの設定がプロパティに表示されない場合は、一度そのフローを編集で開いて、何もしなくて良いので保存し直しましょう。

これで、昔に作ったフローがV2スキーマと呼ばれる新しい保存形式になり、フロータイムアウト機能が使えるようになるはずです。
その後、もう一度プロパティの下の方を見て探してください。
(保存し直してもプロパティ > 詳細情報 で スキーマバージョンがV1のままの場合は、ご自身の会社のPower Platform管理者に問い合わせてください)

おわりに

以上、今回は2024年6月のPADバージョンアップ内容をお伝えしました。

なお、内容をきっちり確認したい方は、公式ページをチェックしてください。

また、KMDSの小技ページでは、他にもいろいろな情報を掲載しています。
よろしければご覧ください。