SHOEISHA iD

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

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

Power Automate Desktopチュートリアル

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

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


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

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

 [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オートメーション、テキスト)について紹介します。

修正履歴

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

  • 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/14959 2021/11/01 12:13

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング