Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」のループアクションを利用する
Power Automate Desktopチュートリアル 第3回
ダウンロード サンプルファイル (2.8 KB)
Power Automate Desktopは、自動化可能な作業の流れ(フロー)をデザインし、実行するためのソフトウェアです。第2回では、Power Automate Desktopでの条件分岐を組み込んだフローの作成を行いました。第3回では、繰り返し(ループ)の制御構造を組み込んだフローのデザインを行います。ほとんど同じ部分フローを複数回実行したい場合に、ループの制御構造を導入することで、そのループ対象の部分フローをまとめるて、一つのフローとして表すことができます。
対象読者
- Excel/PowerPointなど、一般的なツールの操作を理解している人
- RPAツールを用いて業務を自動化したい人
ループ処理とは
ループ処理では、[ループ]アクショングループのアクションを使用することで「決められた回数」「特定の条件を満たす間」など特定の条件を満たす間だけ、処理を繰り返すことができます。
例えば、一つのフォルダに入っているファイルに対して一つひとつ同じ処理を行いたい場合、同じフローをそれぞれのファイルに対して書いていると、ファイル名がフローで参照したものと異なる場合やファイル数の増減によって、適用が漏れてしまったり、ファイルが見つからずエラーが発生してしまったりすることがあります。また、処理対象が大量にある場合、同じフローを個別に書くよりも一つだけ書く方が明らかにフロー作成の生産性も上がります。個別に同じフローを複数書いていると、フロー自体に要件変更や問題があって修正する時、すべてを修正しなければなりません。
アクションを繰り返し実行する、ループ処理の実装方法
「Loop」アクションは、LoopIndexという変数が指定した範囲にある間内部に配置したフローを繰り返し実行します。
ここでは、第2回の条件分岐で作成したフローを編集し、ファイルの内容を行単位に出力してみましょう。前回のフローとフローで利用しているテキストファイルについては、前回の記事を参照してください。
[1]ファイルの内容をリストに保存する
[ファイルからテキストを読み取ります]アクションのパラメーター選択画面を開き、[内容の保存方法]を[リスト(それぞれがリストアイテム)]に変更して、[保存]ボタンをクリックします。
リストとは、複数の値を一つの変数で持てる変数の型で、インデックス番号を付与して要素を参照します。これによって、読み取ったファイルの内容が行ごとに分割されて、リストとして変数FileContentsに格納されます。FileContentsの各要素には、変数名[番号]の形式でアクセスできます。例えばFileContents[0]が1行目、FileContents[1]が2行目、FileContents[n-1]がn行目を意味します(1行目はインデックス番号0で表される点に注意です)。
[2][Loop]アクションを配置する
[ループ]-[Loop]アクションを、ワークスペースの[ファイルからテキストを読み取ります]と[メッセージを表示]の間に、ドロップします。
[Loop]アクションのパラメーター選択画面が開くので、以下の表のように設定してください。
| 項目 | 設定値 |
|---|---|
| 開始値 | 0 |
| 終了 | 2 |
| 増分 | 1 |
Loop-Endの中に配置したフローが繰り返し実行されます。その中のアクションでループを識別する変数[LoopIndex]を使用できます。最初のループ時は、[開始値]に設定した値(この例では0)が入っています。Loop-EndのEndまで実行されると、Loopのところに制御が戻り、変数[LoopIndex]の中身が、[LoopIndex]の現在の値+増分に設定した値で更新されます(最初の更新では1)。この値が[終了値](ここでは2)を超えていなければ、再び中に配置したフローの実行が繰り返されます。[終了値]を超えている場合には、中の処理を実行せずLoop-Endの後続のフローに制御が移ります。
[3]繰り返し実行するアクションをループに配置する
[メッセージを表示]アクションを右クリックし、表示されたコンテキストメニューから[上に移動]を選択、[Loop]~[End]の配下に移動します。
[4]メッセージを修正する
[メッセージを表示]アクションのパラメーター選択画面を開き、[表示するメッセージ]を[%FileContents[LoopIndex]%]に変更して、[保存]ボタンをクリックします。これによって、ループインデックス(ループの周回)に応じて、対応する行の内容が表示されるようになります。
[5]フローを実行する
再びフローを実行してみましょう。テキストファイルを選択すると、ファイルの内容が1行ずつメッセージボックスに表示されます。
現時点では[終了]に2を設定しているので、3行目までしか実行されません。すべての行に対して、処理を実行するためには、[Loop]アクションのパラメーター選択画面の[終了]に「%FileContents.Count - 1%」と設定してください。
FileContents.CountはFileContentsの要素数です。これでファイルの行数が変化しても、それに応じて終了値も変化します(「-1」しているのは、インデックス番号が0はじまりだからです。よって、終了のインデックス番号も実際の行数より1小さいのです)。
- 修正履歴
-
- 2021/11/01 12:13 サンプルファイルを追加いたしました。
- 2021/11/01 12:13 3ページ目、「[1][For each]アクションを配置する」の1行目に誤りがあったため、修正いたしました。正しくは「[For]アクション」ではなく「[Loop]アクション」でした。
この記事は参考になりましたか?
- Power Automate Desktopチュートリアル連載記事一覧
- この記事の著者
-
WINGSプロジェクト 飯島 聡(WINGSプロジェクト イイジマ サトシ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、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本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
