WinActorシナリオ作成の基礎 繰り返し処理の設定

WinActorのシナリオ作成で便利なパターンのご紹介

働き方改革、人手不足の特効薬として期待が高まっているRPA。最近はかなり導入している企業も増えてきているようですね。

今日は日本でシェアNo.1のRPAツールであるWinActorでシナリオを作成する際に良く使われる便利なパターンをご紹介したいと思います。

※初心者向けです。

 

なお、WinActorの基礎的な操作のご紹介は下記の記事に掲載していますので良かったらぜひ合わせて読んでみてください。

https://work-pj.net/archives/1942

シナリオ作成でよく使われる便利なパターン

今日ご紹介するパターンは「ある作業を指定した状態になるまで繰り返し行う」という場合のやり方をご紹介したいと思います。

何か具体的な作業がないと分かりづらいので、今回は

  1. あるEXCELファイル※図1 のデータを一行ずつ読み取る
  2. 読み取ったデータを別のEXCELファイル※図2 に転記する
  3. 「1~2」の作業を読み取るデータがなくなるまで繰り返す

という内容を題材にしてご説明したいと思います。

※図1 転記元EXCELファイル

 

※図2 転記先EXCELファイル

 

データの転記先は今回のように他のEXCELファイルでも良いですし、社内の基幹システムや他の何かでも、基本的に何にでも応用できます。

では早速やってみましょう。まず、今回使用するノードおよびライブラリは下記のNo.1~No.6までの6種類です。

①「繰り返し」 ※「ノード」タブの「フロー」内

②「分岐」 ※「ノード」タブの「フロー」内

③「繰り返し終了」 ※「ノード」タブの「フロー」内

④「EXCEL操作(行の読み取り)」 ※「ライブラリ」タブの「18_EXCEL関連」「03_行列操作」内

⑤「EXCEL操作(値の設定2)」 ※「ライブラリ」タブの「18_EXCEL関連」内 ※四箇所配置

⑥「カウントアップ」 ※「ノード」タブの「変数」内

①~③が「ある作業を指定した状態になるまで繰り返し行う」ための仕組みです。

④~⑥は「ある作業」の中身に相当する部分で、今回は「転記元のEXCELファイルから転記先のEXCELファイルへデータを転記する」ための仕組みです。

これら6種類のノードおよびライブラリを図3のようにドラッグ・アンド・ドロップで配置します。

※図3 ノードとライブラリの配置図

次に準備として、転記元EXCELファイルから読み取った値を格納しておくための「変数」をWinActorに作成しておきます。変数はWinActor「変数一覧ウィンドウ」の  ボタンから追加できます。※図4参照

今回、転記元EXCELファイルから読み取る値は「社名」「住所」「電話番号」「メールアドレス」の4つですので、これらを変数として作成します。

さらに、後述しますが転記元EXCELファイルのデータを読み取る際のスタート行、および転記先ファイルの転記するセルの行を指定する必要があるため、「読み取り開始行」および「転記開始行」という変数も作成します。

また、今回は読み取りも転記も2行目から開始しますので、変数「読み取り開始行」および「転記開始行」の初期値を”2”と設定します。

※図4 変数設定イメージ

これで準備は全て完了です。続いて①~⑥の各ノードおよびライブラリを個別に設定していきます。

①「繰り返し」ノードの設定

繰り返しノードはある条件に合致する場合に、設定した作業を繰り返させることができるノードです。

今回は、「繰り返し」ノードではあえて終了条件を設定せず、永遠に繰り返す(=無限ループ)とし、繰り返しを終了する処理は次に登場する「②分岐」「③繰り返し終了」ノードを用いて設定するパターンをご紹介します。

をダブルクリックし、プロパティを開きます。

※図5 「繰り返し」ノードのプロパティ

プロパティの中の「条件式設定」を開きます。

※図6 「繰り返し」ノードの条件式設定

条件式に「値1=空欄」、「比較演算子=等しい」「値2=空欄」となるように設定します。

※初期の値のままです。何も変更せず「OK」をクリックしてください。

これで、「繰り返し」ノードに無限ループとなるように設定ができました。

②「分岐」ノードの設定

分岐ノードはある条件に合致する場合にTrueで定義した処理を行わせ、合致しない場合にFalseで定義した処理を行わせることができるノードです。

今回は「条件 = 全てのデータを転記し終えた(転記するデータがなくなった)場合」として設定します。

をダブルクリックしてプロパティを開きます。

※図7 「分岐」ノードのプロパティ

プロパティの中の「条件式設定」を開きます。

※図8 プロパティの中の「条件式設定」

値1の欄に先程作成した変数から「社名」を選択します。

比較演算子の欄には「等しい」を選択します。

値2の欄は「値 ⇛ 空欄」となるように設定します。

これは「”社名”という変数に格納されている値が空欄と等しい場合、Trueの処理を行う」という条件式になります。つまり転記元のデータを全て転記し終え、空欄のセルを読み取った場合、Trueの処理が実行されるという意味です。それまではFalseの処理が無限ループで繰り返されます。

次にTrue、Falseそれぞれの場合に行う処理をを設定します。

まずTrueの場合ですが、Trueは「全てのデータを転記し終えた(転記するデータがなくなった)場合」に行う処理ですので、①「繰り返し」ノードの終了を設定します。

③「繰り返し終了」ノードの設定

「繰り返し終了」ノードは「繰り返し」ノードによる繰り返し処理を終了させることができます。

設定は「繰り返し終了」ノードの配置だけで完了します。特別な設定はいりません。

※図9 Trueの処理の設定イメージ

次にFalseの処理を設定します。

Falseの処理はTrueとは逆に「データを転記し終えていない(転記するデータがまだある)場合」の処理なので、

  • データの読み取り
  • データの転記

作業を設定する必要があります。

最初に配置したノードおよびライブラリ④~⑥の設定が該当します。

④「エクセル操作(行の読み取り)」ライブラリの設定

「エクセル操作(行の読み取り)」ライブラリは指定したEXCELファイル内の指定したシート、行にある値を読み取って変数に格納できるライブラリです。

をダブルクリックし、プロパティを開きます。

※図10 「エクセル操作(行の読み取り)」ライブラリのプロパティ設定イメージ

図10のようにプロパティを設定するのですが、実はその前に同ライブラリのスクリプトタブの内容を編集する必要があります。

「エクセル操作(行の読み取り)」ライブラリは初期設定では「A列~E列」までの読み取り結果を格納する変数が指定できるようになっています。しかし、今回読み取りたい値は「A列~D列」までですので、「E列」の項目を削除する必要があります。それをスクリプトタブの内容編集によって行います。

※図11 初期状態の「エクセル操作(行の読み取り)」ライブラリのプロパティ

やり方はスクリプトタブ内の該当箇所を削除するだけです。

※図12「エクセル操作(行の読み取り)」ライブラリのプロパティのスクリプトタブ

これで設定タブに戻れば、図10のようにE列の項目が消えています。

なお、このスクリプトタブの編集は項目の削除だけでなく追加なども可能ですので、用途によって応用することができます。

⑤「エクセル操作(値の設定2)」ライブラリの設定

「エクセル操作(値の設定2)」ライブラリは変数に格納されている値を指定したファイルの指定したセルに設定することができるライブラリです。

をダブルクリックしてプロパティを開きます。

※13 「エクセル操作(値の設定2)」ライブラリのプロパティ設定イメージ

※転記するセルの列(今回はB~E)に注意して、同様の設定を「住所」「電話番号」「メールアドレス」についても行ってください。

⑥「カウントアップ」ノードの設定

「カウントアップ」ノードは数値が設定されている変数の値を指定した値だけ加算することができるノードです。

「エクセル操作(値の設定2)」ライブラリには「エクセル操作(行の読み取り)」ライブラリのような、自動カウントアップ機能は無いため、転記するセルの行数(=「転記開始行変数」の値)を3行目、4行目と進めるための設定を行う必要があります。

をダブルクリックしてプロパティを開きます。

※14 「カウントアップノード」の設定プロパティイメージ

以上でシナリオの完成です。

それでは実際の動きを見てみましょう。作成したシナリオを「開始」と「終了」の間に入れて実行してみてください。

※図15

※図16 「開始」と「終了」の間に入れた状態

※動画挿入

今回ご紹介しました、「ある作業を指定した状態になるまで繰り返し行う」場合のやり方は、本文中の「ノードおよびライブラリ④~⑥」の処理を変えるだけで非常に多くの場面に応用ができる便利なパターンなので、ぜひ実際に取り入れて活用してみてください。