SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Power Automate Desktopチュートリアル

無償デスクトップ自動化ツール「Power Automate Desktop」のサブフローで、作った機能の柔軟性を高めよう

Power Automate Desktopチュートリアル 第21回

  • X ポスト
  • このエントリーをはてなブックマークに追加

メインフローを作成してサブフローを呼び出す

 作成したサブフローを呼び出すフローを作成します。スクリーンショットを取得するサブフローなので、ここでは画面の変化がある第14回と第15回のフローから呼び出します。このサンプルはExcelブック「今月のカレンダー.xlsx」を開いた状態で、文字色や表示形式、セル色、枠線などを変更するフローでした。フローのそれぞれのステップからサブフローを呼び出し、実行の過程をスクリーンショットに記録していきます。

 なお、このサンプルでは使用しませんでしたが、入出力変数に項目を追加して、外部名をメインフローの変数と同じ名前にすることで、メインフローと変数を共有することができます。

[1]メインフローのデザインに戻る

 画面上部のツールバーの下のMainフロータブをクリックします。メイン/サブフローの切り替えはこのタブのクリックで行います。

図:Mainフロー、サブフロー
図:Mainフロー、サブフロー

[2]ドキュメントフォルダーを取得する(アクションを配置する)

 [フォルダー]アクショングループから[特別なフォルダーを取得]アクションを配置します。

図:ドキュメントフォルダーを取得アクションの配置
図:ドキュメントフォルダーを取得アクションの配置
図:ドキュメントフォルダーを取得アクションの設定
図:ドキュメントフォルダーを取得アクションの設定

 以下の入力/選択をして保存します。

  • 特別なフォルダーの名前:ドキュメント
  • 生成された変数:%Documents%

 [生成された変数]は変数名をクリックすると編集状態になるので、これを変更してください。

[3]Excelの起動をする(アクションを配置する)

 [Excel]アクショングループから[Excelの起動]アクションを配置します。

図:Excelの起動アクションの配置
図:Excelの起動アクションの配置
図:Excelの起動アクションの設定
図:Excelの起動アクションの設定

 以下の入力/選択をして保存します。

  • Excelの起動:次のドキュメントを開く
  • ドキュメントパス:%Documents%\今月のカレンダー.xlsx

[4]Excelの操作をするフローをテキストファイルからコピーして貼り付ける

 この後に、過去の連載記事のサンプルのテキストファイルの内容を貼り付けます。テキストエディタで[第14回 1.マウスでのUI操作フローを作成する.txt]を開き、[Ctrl]+[A]で全選択した後、[Ctrl]+[C]でクリップボードにコピーします。

図:マウスでのUI操作フローのコピー
図:マウスでのUI操作フローのコピー
図:マウスでのUI操作フローの貼り付け
図:マウスでのUI操作フローの貼り付け

 Power Automate for Desktopのデザイン画面のMainフローに戻り、[Excelの起動]アクションの下の何もない部分をクリックします。[Ctrl]+[P]で貼り付けます。

 フローが貼り付けられたら、同様にその下に[第15回 1.レコーダーでUI操作を記録する.txt]の内容をコピーして貼り付けます。続けてその下に[第15回 2.キーボード操作のフローを作成する.txt]の内容も貼り付けます。

図:レコーダーでUI操作フローとキーボード操作のフローの貼り付け
図:レコーダーでUI操作フローとキーボード操作のフローの貼り付け

[5]フローの終わりを分かりやすくする

 フローの末尾に、フローが終了したことを分かりやすくする処理を入れます。

 今回は、[メッセージ]アクショングループから[メッセージの表示]アクションを配置します。

図:メッセージの表示アクションの配置
図:メッセージの表示アクションの配置
図:メッセージの表示アクションの設定
図:メッセージの表示アクションの設定

 以下の入力/選択をして保存します。

  • 表示するメッセージ:完了しました。

[6]サブフローを呼び出す(アクションを配置する)

 Mainフローの最初の部分を表示して、[フローコントロール]アクショングループから[サブフローの実行]アクションを[ウィンドウ状態の設定]アクションの次にドロップします。

図:サブフローの実行アクションの配置
図:サブフローの実行アクションの配置
図:サブフローの実行アクションの設定
図:サブフローの実行アクションの設定

 以下の選択をして保存します。

  • サブフロー名:ScreenShotFlow

[7]再度サブフローを呼び出す(アクションをコピーして貼り付ける)

 配置した[サブフローの実行]アクションを選択して、[Ctrl]+[C]でコピーし、すぐに[Ctrl]+[P]を押すとすぐ下に貼り付けられます。貼り付けた[サブフローの実行]アクションをドラッグして、例えば[ウィンドウ内のテキストフィールドに入力する]アクションの下にドロップします。

 この操作を繰り返して、画面が変化するアクションの後に、[サブフローの実行]アクションを任意のアクションの次に挿入していきます。

図:サブフローの実行アクションのコピー貼り付け
図:サブフローの実行アクションのコピー貼り付け
図:サブフローの実行アクションのドラッグアンドドロップ
図:サブフローの実行アクションのドラッグアンドドロップ

 [サブフローの実行]アクションを複数箇所に挿入することをデザインの画面で行うことを説明しましたが、一旦フロー全体をテキストエディタにコピーして、挿入したい箇所に

CALL ScreenShotFlow

の行を貼り付けて挿入して、改めて全体をコピーして、デザインの画面に貼り付ける方が効率的にデザインできる場合もあります。

図:テキストエディタでのサブフローの実行アクションのコピーペースト
図:テキストエディタでのサブフローの実行アクションのコピーペースト

 例えば、メインフローのすべてのアクション後で、この[サブフローの実行]アクションを入れたい場合に、手作業では大変だと感じる場合に、後述の補足に紹介する方法もあります。

[8]フローを実行する

 フローを実行すると、Excel画面の操作が行われ、スクリーンショット画像が保存されていきます。フローが完了したら、ピクチャフォルダーのフォルダーを確認します。

図:実行結果
図:実行結果
図:スクリーンショット画像
図:スクリーンショット画像

[補足]

 サブフローを使ったフローでは、Mainフローを全体をコピーしてもサブフローはコピーできないので、テキストファイルにフローを保存する場合は別々にコピーして保存、他のフローにも別々に貼り付ける必要があります。

 また、サブフローをワークスペースからすべてを選択してコピーすると、以下のようなコードを得られます。

FUNCTION (サブフロー名) GLOBAL
	(内容)
END FUNCTION

 ただし、他のフローのワークスペースに貼り付けることができるのは「内容」の部分のみです。

次のページ
サブフローを利用すれば、テキスト処理ツールも作れる

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Power Automate Desktopチュートリアル連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 飯島 聡(WINGSプロジェクト イイジマ サトシ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17703 2023/05/26 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング