CodeZine(コードジン)

特集ページ一覧

Windows10の無償デスクトップ自動化ツール「Power Automate Desktop」のループアクションを利用する

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/10/19 11:00
目次

リストの各要素に対してループを実行する

 [For each]アクションは、指定したリスト変数の各要素に対して、配下の処理を実行します。ループインデックスを直接使用しない場合は、同じループフローを[Loop]よりも簡潔にデザインできます。

 以下では、上の例にある[Loop]アクションを[For each]アクションで置き換えてみましょう。

[1][For each]アクションを配置する

 [Loop]アクションの前に[For each]アクションを配置します。

For eachアクションを配置
For eachアクションを配置
For eachアクションの設定
For eachアクションの設定

 パラメーター選択が表示されるので、[反復処理を行う値]にリスト(%FileContents%)を指定します。これで、[For each] - [End]の内側のアクションで、現在のアイテムの変数[CurrentItem]を介して、値を参照できるようになります。

For each
For each

 [For each]アクションでは、すべての要素についてループが実行されると、ループを終了します。

[2][Loop]アクションの内容を[For each]アクションに移動する

 [Loop]アクション配下の処理を[For each]アクションの配下にドラッグ&ドロップします。また、いらなくなった[Loop]アクションを削除しておきましょう(アクションを選択したうえで[Delete]キーで削除できます)。

[3]「メッセージを表示アクション」を修正する

 メッセージを表示アクションで[表示するメッセージ]を[%FileContents[LoopIndex]%]から[%CurrentItem%]に変更します。

CurrentItemを参照
CurrentItemを参照

 以下は、完成したフロー図です。

For eachアクションで書き直したフロー
For eachアクションで書き直したフロー

[4]フローを実行する

 サンプルを実行し、先ほどと同じ結果を得られることを確認しておきましょう。

条件が成り立つ間、処理を繰り返す

 [ループ条件]アクションを利用することで、指定した条件が成り立つ間、内側に配置したフローを繰り返し実行することもできます。条件式を自由に設定できるので、[Loop]や[For each]よりも汎用的なループをデザインできるのが特徴です。

 以下は、前項の内容を[ループ条件]アクションで書き換えた場合のフローです。

ループ条件アクションで書き直したフロー
ループ条件アクションで書き直したフロー

 これまでの復習もかねて、自分でフローを編集してみましょう。[ループ条件]アクションでは、[LoopIndex]などが管理されないので、自分で管理する必要がある点に注意です。

 [LoopIndex]を使用していますが、[変数を設定]アクション、[変数を大きくする]アクションで値を操作しなければなりません。最初の[変数を設定]アクションがない場合は変数[LoopIndex]は0から始まるので、このフローであれば問題は起きませんが、最初の値が0以外の場合は、明示的な設定が必要です。また、[変数を大きくする]アクションがないと、[LoopIndex]変数の値が変わらず、全く同じフローを繰り返してしまい、特別に[ループを抜ける]アクションを通らない限り、条件が成り立ち続けてループを抜けることができなくなってしまいます。

 [ループ条件]アクションのパラメーター設定は、[If]アクションの場合と同じです。

ループ条件アクション
ループ条件アクション

 これで「変数[LoopIndex]が[FileContents.Count]よりも小さい間だけ処理を繰り返す」という意味になります。サンプルを実行し、先ほどと同じ結果が得られることを確認してください。

 今回は、[Loop]アクションと同じ内容を書き換えたため、[LoopIndex]を使用していますが、任意の条件を[ループ条件]アクションの[ループ条件]として設定できます。ただし、[ループ条件]が不成立になるか[ループを抜ける]アクションを通ることで、ループが終了されることを確認してください。

まとめ

 今回はループ処理について説明しました。次回は、いくつかのアクション(ファイル、フォルダ―、Excel、Webオートメーション、テキスト)について紹介します。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 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開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

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

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5