2024年03月01日

はじめてPowerAutomateDesktop でExcelデータの繰り返し処理をしてみた

はじめてPowerAutomateDesktopでExcelデータの繰り返し処理をしてみた

はじめに

この記事では、PowerAutomateDesktopでの繰り返し処理について解説します。
PowerAutomateDesktopでの繰り返しのアクションは、3つあります。
それぞれのアクションの違いや使い方Excelデータを繰り返し処理する場合には、どのアクションをどのように使ったらよいのかを解説しますので、ぜひお役に立てください。

※運営会社「日本リック」について
日本リックは1984年設立の総合人材サービス会社です。規模こそ大きくないですが、取引先企業や派遣で働くみなさんとの信頼関係を大切に、満足いただけるサービスを提供しています。
≫日本リックの派遣の紹介ページはこちら

目次

繰り返し処理とは

繰り返し処理とは、その言葉どおり同じ動作を何回も繰り返し行う処理のことをいいます。業務では、交通費のチェック作業を繰り返し行ったり、お客さまへのメール送信を繰り返し行ったりさまざまなシーンで使います。
RPAでは、同じ作業を何回も繰り返す「手間のかかる業務」を自動化したいことが多いので、繰り返しは必ずといっていいほど使います。ぜひマスターしましょう。

繰り返しのアクション

PowerAutomateDesktopでの繰り返しのアクションは3つあります。

繰り返しのアクション
1.【Loop】
単純ループといって繰り返し回数が決まっている場合
2.【For each】
Excelの表などリストデータがあり、その1件1件すべて対して繰り返し行う場合
3.【ループ条件】
繰り返し回数が決まっておらず、条件により繰り返す場合

どのアクションを使うのかは、繰り返す内容や対象データなどにより判断し決定します。

アクション【Loop】

【Loop】とは

Loopは、単純ループといって同じ動作を繰り返す回数が決まっている(上限数が決まっている)場合に使うアクションです。
このアクションでは、[%LoopIndex%(ループインデックス)]という変数が自動的に作成され、 ループインデックスの値が設定した値になるまで繰り返すという設定を行います。
[%LoopIndex%]は、変数名なので変更可能です。

3件データがあり、処理Aのあと処理Bを3回繰り返し、その後処理Cを行う場合
1.処理A

2.処理B   ループインデックスが「3」になるまで処理Bを繰り返す

3.処理C

【Loop】の設定

アクションLoopでは、「開始値(初期値)」と「終了値」と「増分値」を設定します。
・開始値(初期値):処理を始める場所・始点
・終了値:処理を終了する場所・終点
・増分値:増やしていく値

3回同じ処理を繰り返す処理を行いたい場合は、Loopアクションの「パラメーターの選択」で、開始値「1」、終了値「3」、増分値「1」とします。
そうすることで、[%LoopIndex%]には、始め「1」が格納され、1回処理するごとに「1」ずつ増やし、「3」になったら処理を終了するという設定ができます。

Loop

【Loop】Excelデータで使うシーン

[Loop]をExcelデータの繰り返しで使うシーンは、データ件数が固定で繰り返す回数が決まっている場合です。
Excelの表の一部で[セル結合]を行っている場合に、別の列で「2行目→4行目→6行目」のように1行おきに繰り返し処理を行いたいときには[Loop]が有効です。

A列とB列でセルが結合されている成績表で、D列にある国語の前期の成績を読み取る処理を行う場合

「山本くんの前期・国語の点数(D列2行目)」を起点にして、児玉さん・西川さんの国語の点数を読み取るには、Loopアクションで、開始値を2(2行目から)、増分を2(2行ずつ)、終了を6(6行目まで)と設定します。

Loop

Excel読み取る

アクション【For each】

【For each】とは

Excelなどデータベース(表)形式のデータすべてに対し繰り返し処理する場合に使うのがアクション[For each]です。
アクション[For each]では、あらかじめ読み取ったすべてのデータに対して1件ずつ処理を繰り返す設定を行います。データ件数が数件でも千件でも、データ件数に関わらず繰り返すことがきます。

【Excelワークシートから読み取る】

Excelシート内のデータに対して処理を繰り返す場合には、アクション[Excelワークシートから読み取る]を使い、繰り返したいデータをあらかじめ読み取ります。
アクション[Excelワークシートから読み取る]では、読み取り対象を指定する[取得]欄の既定値が[単一セルの値]になっています。それを[セル範囲の値]に変更し、読み取りたい範囲を項目名も含め行番号や列番号で指定します。
下表でセル[B3]からセル[H15]を読み取りたい場合の設定内容は次のとおりです。

読み取り対象

・取得:単一セルの値(既定値)→「セル範囲の値」に変更
・先頭列:b ※繰り返したい範囲の先頭列(項目名も含む)
・先頭行:3 ※列番号行番号は半角で入力
・最終列:h
・最終行:15
・<詳細>範囲の最初に列名が含まれています [オン]
・生成された変数:ExcelData

読み取ったデータの先頭行が列名の場合には、<詳細>を開き[範囲の最初の行に列名が含まれています]を「オン」にします。そうすることで、1行目は列名で2行目以降がデータ部分であることを認識させることができ、列名でデータを取り出すことが可能になります。
[範囲の最初の行に列名が含まれています]は既定値が「オフ」になっているので、忘れずに「オン」にしましょう。

Excel読み込む

アクション[Excelワークシートから読み取る] の「セル範囲」で読み取ったデータは、[生成された変数]で指定されている[ExcelData]という変数に格納されます。
この変数のデータ型は、表形式で取り込んでいる「データベース型」です。
実際に読み取った変数内のデータやデータ型は、フローデザイナー右側「変数ペイン」内の変数[ExcelData]をダブルクリックすると確認することができます。
念のため、読み取れているかを確認しましょう。

変数確認

【For each】の設定

For eachでは、あらかじめ読み取ったデータベース型の変数(ExcelData)を[反復処理を行う値]として指定します
For eachは、反復対象(Exceldata)のデータを1行ごと順に抜き取り、繰り返し処理を行うアクションです。
1行ごとに抜き取ったデータは、変数%CurrentItem%(カレントアイテム)に行単位で格納しながら、処理を繰り返します。

アクション[For each]を設定すると、[End]というの終わりを表すアクションが自動的に挿入されます。
For eachとEndの間に繰り返す処理を設定します。

Foreach

CurrentItemの使い方

For eachのアクションは、データベース型のデータを1件ずつCurrentItemに入れて、繰り返し処理を行います。
そのため、For eachからEndの間で行う処理の対象データにはCurrentItemを指定します。Excelからデータを読み取った際にできた変数[ExcelData]ではありません。間違えやすいところなので注意しましょう。

カレントアイテム

CurrentItemの指定には2つの方法があります。
1.列名を指名する方法
 Excelから読み取ったデータの「列名」を指定します。
 例) %CurrentItem[‘支店名’]%   注:「 [」や「’ 」など記号は半角入力
2.列番号で指定する方法
 ExcelData内で左から何番目の列かを指定します。(0始まりの列番号)。
 例) %CurrentItem[2]%

読み取るデータ範囲が可変の場合

処理をしたいデータの数(範囲)が固定されておらず、データ数が増減する場合(可変の場合)があります。
その場合は、最終行が何行目になるかを認識させる必要があるので、データを読み取る前にアクション[Excelワークシートから最初の空の列や行を取得]や[Excelワークシートから列における最初の空の行を取得]を使います。
アクション[Excelワークシートから最初の空の列や行を取得]や[Excelワークシートから列における最初の空の行を取得]では、1行目から順番に見ていったときに最初に出てくる空の行番号を取得します。その値から「-1」すると最終データの行番号を認識させることができます。これを用いて読み取り範囲を指定します。

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

【ループ条件】とは

ループ条件は、対象のデータが指定した条件に合致しているあいだ、処理を繰り返す場合に使うアクションです。
例えば、「テストの点数が80点以上」の場合など、条件に一致しているあいだ繰り返すことができます。

ただ、Excel処理の繰返しに関しては、LoopやFor eachを使うことがほとんどかもしれません。条件をつけたい場合は、繰返しの中でIFで条件を設定します。

PowerAutomateDesktopでの条件分岐[If]の使い方は、こちらをご覧ください。
≫「PowerAutomateDesktopでの条件分岐[If]の使い方」

さいごに

いかがでしたか?
「Power Automate Desktopでの繰り返し処理の使い方」をご理解いただけましたか?
Power Automate Desktop での繰り返しの3つのアクションを使い、Excelデータを繰り返す場合をご紹介しました。
業務でのRPA化には、繰り返しはマストなアクションです。ぜひご活用ください。

マイキャリア無料メルマガ登録
マイキャリア無料メルマガ登録 未経験から始める事務 未経験から始めるインフラエンジニア 未経験から始める法人営業 日本リック新卒採用情報
人気記事ランキング