LoginSignup
1
1

プログラマがPower Automate for Desktopを使う(6)フロー作りの小技と雑学

Last updated at Posted at 2022-12-27

※この記事は プログラマがPower Automate for Desktopを使う シリーズの一つです。

フロー作りの小技と雑学

フロー作成作業の効率を上げる手段とPower Automate for Desktopに関する予備知識を書きます。雑多な内容です。

小技

STOPメッセージ

メッセージを表示アクションを使うと、メッセージダイアログを出せます。私は「タイトルがSTOP、中身が空、メッセージボックスを常に手前に表示する」という単純なメッセージを使いました。
STOPメッセージをフローに挿入すると、フローデザイナーで実行中のフローをそこで止め、フローデザイナーにて停止することができます。この動きは、その場面でUI要素をピックしたりレコーダーでの記録を開始する目的で利用できます。
なお、ブレークポイントで停止する手段が元々用意されていますが、停止時にフローデザイナーをフォワードにしないと止まったかどうかが分からないため、不安になります。

WORKサブフロー

私は、名前がWORKで、平時は中身が空のサブフローを使いました。
フローを編集する際に、次の作業手順で利用します。

  1. 作成中のサブフローの、ステップ追加箇所に前述のSTOPメッセージを入れておき、そこまで実行し、フローを停止する。
  2. WORKサブフローで、手作業またはレコーダーにてステップを作る。
  3. WORKサブフローの先頭から「ここから実行」を使って、動作確認する。
  4. WORKサブフローの中身を切り取り&貼り付けで、作成中フローのSTOPメッセージの個所に移動する。
  5. 移動先で動作確認する。
  6. フローを保存する。

デバッグ用出力の手段

デバッグ用の出力のために次の手段を使ってみました。

  • メッセージを表示アクションでメッセージボックスを出す。
  • Webページのスクリーンショットを取得しますでブラウザ画面をクリップボードに貼り、ペイントを起動して貼り付ける。
  • Webページの上の詳細を取得しますアクションで例えば「Webページテキスト」をクリップボードに貼り、メモ帳を起動して貼り付ける。

メッセージを表示アクションのメッセージボックスが、使い勝手が良かったです。1ステップで出力できます。メッセージボックスのサイズは内容で決まりるので、長いテキストでも大丈夫です。

デザイナーから起動するフローの入力変数の設定

入力変数があるフローをコンソールから起動した場合は、フローを呼び出す際に引数値を指定できます。しかしデザイナーから起動した場合は、入力変数の値を指定する手段がなく、フロー作成時に指定した規定値のままで走ってしまいます。
規定値のままでは困る場合は、次の方法で対処できます。

  1. 入力変数の規定値として空文字列(シングルクォート2つ)を指定しておく。
  2. フローの冒頭で、入力変数の値が空文字列だった場合は、入力ダイアログを表示してユーザに入力させる。

雑学

ちょっと一息

名前の通用範囲

  • フローの容器
    Power Automate for Desktop(無償版)の場合、フローを置く場所は「ローカルコンピューター」だけです。
    複数のフローをグループ化する手段はありません。代替法として、グループ化したい複数のフローの名前を「グループ名_識別名」の形にすると、見分けやすくなります。
  • 変数の通用範囲
    変数名の通用範囲はフロー全域です。
    変数値の寿命はフロー全体です。設定前にも参照可能で、値は空(くう)です。サブフローで設定した値はサブフローを抜けても生き延びます。
  • UI要素の通用範囲
    UI要素ペインにある「階層構造」「括りの名前」「UI要素の名前」はフロー全域から見えます。ただしUI要素を参照できるのは、対象が表示されている場面です。
  • サブフロー名の通用範囲
    サブフロー名の通用範囲はフロー内の全域です。他のフローからは呼べません。
  • フロー名の通用範囲
    フロー名は全フローから見えます。1つのフローの名前を変更すると、呼び出し元にも波及します。

フローの管理について

バックアップ

全体のバックアップ

Power Automate for Desktop(無償版)の場合、フローの物理的な格納場所は、個人用OneDriveの中です。

C:\Users\ユーザ名\OneDrive\アプリ\Power Automate Desktop For Windows

このフォルダーをローカル側にコピーすれば物理的なバックアップになりそうです。しかし、その旨の公式情報を見つけることができませんでした。

サブフロー単位のバックアップ

サブフローの中身を文字列として取り出し、テキストファイルに保存することは可能です。しかし、この手段はサブフロー毎にコピー&貼り付けを行うので、煩雑です。

版管理

フローの版管理をする手段をみつけることが出来ませんでした。
※前述したとおり「サブフロー単位のバックアップ」では辛いです。
代替法として、フローのコピーを作りフロー名を「フロー名_yyMMdd」に変更し、2世代程度古くなったら削除する、という方法を使っています。

Power Automate for Desktopでは出来ないこと

フローまたはサブフローの名前に依らない呼び出し

例えば

フローAがフローBを呼び、フローBがフローC1またはフローC2を呼ぶ必要がある。
ただし、フローAがフローBを呼ぶ際に、フローBの引数でフローC1またはフローC2を指定したい。

という場合に、フローまたはサブフローを名前に依らず呼べると便利です。しかし

  • Desktopフローを実行アクションで指定できるのはフロー名
  • サブフローの実行アクションで指定できるはフロー内のサブフロー名

であり、変数を指定でません。ですから、名前に依らない呼び出しは、残念ながら出来ません。

Power Automate for Desktopの自動操作

例えば

  • 1つのフローの全サブフローについて、内容をテキストファイルに保存する

目的で、フローでPower Automate for Desktopの自動操作ができれば便利ですが

  • UI要素ピッカーPower Automate for Desktopのコンソール画面を選べない
  • UI要素ピッカーPower Automate for Desktopのデザイナー画面を選べない

ため、Power Automate for Desktop操作の自動化は、残念ながら出来ません。

シリーズの記事一覧へ

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1