RPA初心者向け講座⓫
全シナリオの確認
シナリオ全体
これまで、第8回から第10回までの3回の講座において、以下のとおり、各グループごとにシナリオ作成方法を詳しく説明いたしました。
- セル位置の情報取得【シナリオ作成(1)】
- 全情報の取得【シナリオ作成(2)】
- 全情報の設定【シナリオ作成(3)】
今回は、全体のシナリオについて一括して確認し、シナリオの構成を改めて総括したいと思います。
シナリオ全体図は、エクセルで作成したゴーヤンのテレワーク報告書を自動的に一つの集計表に集約するシナリオの全体構成を表しています。
すでに詳しく説明したように、2次元配列操作を用いてエクセルデータの受け渡しを円滑に行っていますので、最初に、2次元配列の初期化を宣言しています。
各ブロックごとの総括は以下のとおりです。
グループ:セル位置取得のシナリオ
最初のグループ「セル位置取得」は、エクセルデータが記録されているセルの座標を2次元配列に取り込む作業です。
「Excel開く(前面化)」によって、セル座標データが記録されている「セル座標ファイル」を開きます。
この繰り返し操作(列移動)においては、列の値を1つずつ動かすことで、1列目からデータが収納されている最後の列までの動作を行います。データが記録されている行は1行なので、列だけを動かせば、すべてのデータを配列に取得することができます。
ただし、エクセルにおける各セルの座標は、「A1」のように、A1形式と言われる形式で認識されていますが、繰り返し操作においては、A、B、C、・・・と移動させることは容易ではありません。そこで、「R1C1形式→A1形式(その1)」を用いることで、R1C1形式で作成したセル情報をA1形式に変換する操作を行います。
例えば、上記のセル座標ファイルにおいて、最初のデータ「F4」は5行目1列目に記録されていますので、R1C1形式では「R5C1」となりますが、これをA1形式に変換すると「A5」となります。これで次の「Excel操作(値の取得)」で変数に取得したデータを取得することができます。
順番に取得したセル座標データは、一時的にWinActor上で保管しておきたいのですが、変数に記録した場合、一つの変数では次々とデータが書き換えられていくので保管できません。そこで配列操作を用います。
一行のデータを保管するので、1次元配列操作を用いることもできますが、次のグループ以降で、2次元配列操作を用いますので、構成を簡潔にするために、2次元配列を一つ用意し、「2次元配列操作(情報更新)」で2次元配列に記録していきます。
繰り返し操作(列移動)が終了すれば、このグループでの必要な作業は終了しましたので、「保存なしで閉じる」でセル座標ファイルを閉じます。
グループ:全ファイルデータ取得のシナリオ
グループ「全ファイルデータ取得」においては、フォルダ内に保存されているゴーヤンのテレワーク報告書を順番に開いて、その中に記録されているデータを取得し、すべてを2次元配列の中に保管する作業です。
最初に、「ファイル数取得」によって、フォルダ内に保管されているエクセルファイルの数を自動的に数えます。ファイルの数がわかると、次の「繰り返し操作(対象ファイル数)」において繰り返す回数を自動的に設定することができます。
繰り返し操作(対象ファイル数)においては、まず「ファイル名取得」によって自動的に開く対象ファイルの名称を取得します。このファイル名取得操作においては、変数「ファイルカウンタ」を設定することで、同じファイルを繰り返し開くことなく、順番にフォルダ内のエクセルファイル名を取得することができます。「Excel開く(前面化)」によって、取得した名称のファイルを自動的に開きます。
次に「繰り返し操作(情報更新)」を実行します。この操作においては、まず、「2次元配列(情報取得)」により、上述のグループ「セル位置取得」において2次元配列に保管したセル座標情報を取り出します。このセル座標情報を「Excel操作(値の取得)」を実行すると正確に対象ファイル上に記録されているデータを取得させることができます。
変数内に取得したデータは、「2次元配列操作(情報更新)」で2次元配列に記録していきます。
2次元配列上での割り当ては上述の表のような感じで保管されていますので、1つのファイルの中で順番に動作を行うためには、配列Cの値を1つずつ移動させることになります。そこで、「繰り返し操作(情報更新)」が終わると、カウントアップ操作によって「配列C」の値を1つ増やし、次の繰り返し操作へと進みます。
「繰り返し操作(情報更新)」が終わると、1つのファイルでのデータ取得作業は終了しましたので、「保存なしで閉じる」で作業を行ったファイルを自動的に閉じます。
次に、「変数値設定」で変数「配列C」の値を「1」に設定します。これは、上述の「2次元配列上での割り当てイメージ」をご覧いただくと明らかですが、「繰り返し操作(情報更新)」によって、配列Cの値は1つずつ増やされていますが、次のファイルにおいては、動作は再び1列目から行う必要があるからです。
最後に、カウントアップ操作を2つ行います。一つは変数「配列R」の値を一つ増やします。これについても、上述の「2次元配列上での割り当てイメージ」をご覧いただくと明らかですが、次のファイルで取得したデータを記録するために、行を1つずらす必要があるからです。そして、もう一つは、変数「ファイルカウンタ」の値を一つ増やします。これは、上述のとおり、「ファイル名取得」によって自動的に開く対象ファイルの名称を正しく取得するために欠かせない操作です。
グループ:全ファイルデータ設定のシナリオ
グループ「全ファイルデータ設定」においては、2次元配列上に一時的に保管したすべての取得情報をエクセルの集計表ファイルに設定します。
最初に「変数値設定操作」によって変数「配列R」と「配列C」の値を初期値に戻します。変数値設定操作は、シナリオの途中で変数の値を変更したいときに使います。覚えていますか?
グループ「全ファイルデータ取得」において、変数「配列R」は「5」から始まりファイルの数に応じて一つずつ値が増加していますので、再び初期値の「5」に戻す必要があります。
また、変数「配列C」についても各ファイルごとに「1」から「16」までの移動を繰り返し、最後は「16」で終わっていますので、こちらについても、再び初期値の「1」に戻す必要があります。
次に、2次元配列に保管した情報を書き出す「集計表ファイル」を「Excel開く(前面化)」によって、自動的に開きます。シート名を「一覧」としましたので、プロパティ設定の際に留意します。
「繰り返し操作(対象ファイル)」は、2次元配列上での割り当て図で言えば、「行」の移動を行う操作です。グループ「全ファイルデータ取得」において、データ取得の対象とするファイルを自動的に次々と開き、2次元配列上での割り当て図において、1行ずつ保管しましたので、これを1行ずつ読取り、エクセルの集計表ファイルに設定します。
「繰り返し操作(情報設定)」は、2次元配列上での割り当て図で言えば、「列」の移動を行う操作です。さらに、列を一つずつ移動しながら、実際に配列情報を読み取り、エクセルの集計表ファイルに設定する操作を行います。
2次元配列から情報を呼び出す前に、集計表ファイルに書き込む際に必要となるセル座標を先に作りましょう。座標の位置がわかりやすいように、集計表のセル位置と2次元配列上の割り当てが一致するように設計したので、配列[5,1]は、集計表の5行目・1列目(A列)、つまり「A5」に書き込みます。「R1C1形式→A1形式(その1)」を用いることで、R1C1形式で作成したセル情報をA1形式に変換する操作を行います。
2次元配列操作(情報取得)によって配列情報を取り出し、変数「取得情報」に保管します。そして、「Excel操作(値の設定)」によって、予め作成したセル位置情報を使い、変数「取得情報」の値を設定(書込み)します。一つずつ列を移動しますので、変数「配列C」の値を「カウントアップ操作」によって1つずつ増やしていきます。
「繰り返し操作(情報設定)」を終えると次の行へと移動することが必要なので、「変数値設定操作」によって変数「配列C」の値を初期値「1」に戻します。また、一つずつ行を移動しますので、変数「配列R」の値を「カウントアップ操作」によって1つずつ増やしていきます。
「繰り返し操作(対象ファイル)」を終えると2次元配列上に一時的に保管したすべての取得情報をエクセルの集計表ファイルに設定する作業は完了です。最後に、「名前を付けて保存」によって、自動的に作成した集計表ファイルを保存します。
変数一覧の確認
変数一覧の活用とエラー発生の防止策
最後に今回使用した変数の確認と初期値設定を行いましょう。全シナリオで使用する変数値は以下のとおりです。各プロパティ画面にて変数を設定すると自動的に変数一覧に追加されますが、初期値は自分で設定する必要があります。変数の整理はシナリオの最終確認として極めて重要です。ミスなどの見落としを防ぐため、工程のグループごとに大別したり、初期値設定の要否で区別したりすることで、見やすく再配置することをお薦めします。
シナリオを実行したときに、予期しないエラーが発生することはやむを得ないことですが、早期に修正を可能とするためには、変数一覧を活用した変数設定の確認が重要なポイントとなります。エラー発生の最大の原因は、変数設定の誤りによるものです。こうした観点から、WinActorにおけるシナリオ作成は、「変数一覧の確認に始まり、変数一覧の確認で終わる」と言っても過言ではないくらい重要です。
各変数の説明
フォルダ・ファイルに関する変数
フォルダに関する変数は、今回、その名称を「テストフォルダ」としました。複数枚のゴーヤンのテレワーク報告書が保管されてるフォルダについて、その正確な保管場所とフォルダ名称を初期値として設定します。
ファイルに関する名称は次の3つです。
- セル座標ファイル:ゴーヤンのテレワーク報告書において、取得すべき情報が記載されている正確なセル座標を予め書き込んであるファイルです。このファイルについて、その正確な保管場所とフォルダ名称を初期値として設定します。
- 集計表ファイル :グループ「全ファイルデータ設定」において使用する集計表ファイルのひな型が予め書き込んであるファイルです。このファイルについて、その正確な保管場所とフォルダ名称を初期値として設定します。
- 集計結果:上記の集計表ファイルに自動的に必要な情報を設定したファイルに別の名前を付けて保管するときに使用する名称です。今回は、その名称を「集計結果」としました。このファイルについて、その正確な保管場所とフォルダ名称を初期値として設定します。
配列に関する変数
今回は、エクセルシートと2次元配列の構成が類似していることを利用し、2次元配列を使いました。配列の名称はシンプルに「配列」とし、エクセルの行に相当する変数を「配列R」、列に相当する変数を「配列C」と設定し、初期値には「5」と「1」を設定します。変数「配列R」の初期値を「5」としているのは、テレワーク報告書【集計表】のフォーマットでは、数値を5行目から記載するので、これに合わせて2次元配列操作での操作も簡単にするために、一時保管場所をこの座標位置に合わせるように設計したことによります。集計表ファイルのイメージ図と2次元配列上での割り当てイメージ図を見比べていただくと理解しやすいと思います。
セル位置に関する変数
セルの行とセルの列については次のとおりです。
- セルの行:セル座標ファイルにおいては、以下の図のとおり、「A5」から「P5」までにゴーヤンのテレワーク報告書から必要な情報を読み取る際に用いるセル情報が記載されています。最初の情報の「F4」の座標位置はR1C1形式で表すと「R5C1」となっていますので、変数「セルの行」の初期値は「5」となります。行と列の値を変数を使って移動させるので「R1C1形式→A1形式(その1)」によってA1形式に変換することについては勉強しましたね。
- セルの列:セル座標ファイルにおいては、以下の図のとおり、「A5」から「P5」までに記載されていますので、変数「セルの列」は、1から16まで動かすことになります。初期値は「1」ですね。
ファイルカウンタに関する変数
指定したフォルダ内に保管してある対象ファイルを自動的に次々と開いていくには、「ファイル一覧(ファイル名)取得」で取得したファイル名を用いて、これを「Excel開く(前面化)」を使って開きます。これについては、「第9回 全情報の取得【シナリオ作成(2)】」において詳しく勉強しました。「ファイル一覧(ファイル名)取得」操作で、同じファイル名称を取得せずに次々とファイル名をさせるために必要な変数が「ファイルカウンタ」です。設計上、初期値には必ず「0(ゼロ)」を設定します。
集計表のシート名に関する変数
集計表ファイルのフォーマットを作成する際に、シート名を「一覧」としました。これに対応するには、プロパティ設定の際に、「値⇒一覧」としても大丈夫ですが、できるだけ変数を使う習慣をつけていただく観点から変数を用いた設定を使っています。できるだけ変数を使う習慣をつけていただくことを推奨しているのは、シナリオ作成が出来上がり、実際に起動させて動かす前に、エラーがないかどうかを確認する必要がありますが、変数を用いれば、変数一覧の確認で、ミスに気が付きやすいことによります。
初心者の方でミスしやすい点は、プロパティ画面上で変数を書き込むと自動的にその変数が追加されていきますが、あとから、初期値が必要であるかどうかを確認を忘れやすいところです。正しく初期値を設定しないとエラーが出てしまいますので、この点にはくれぐれも留意してください。
初期値設定の必要がない変数
変数「指定セル」、「取得情報」、「対象ファイル数」、「開くファイル」、「管理」及び「種別」の計6つの変数は初期値設定が不要です。それぞれの設定や使い方については、これまで詳しく説明して参りましたので、よく復習していただければ幸いです。
皆さま、全シナリオの総括にて、シナリオの全体像が整理できましたでしょうか。最後の変数一覧のところで紹介したように、変数一覧の確認の際に、理解しやすいように変数の順番を並べ替えるとよいと思います。シナリオを実行してみると、予期しないエラーが発生すると思いますが、早期に修正可能とするためには、変数一覧を活用した変数設定の確認が欠かせません。さて、次回は、本日総括したシナリオを全く違う種類の自動集計に使う事例を紹介し、このシナリオの汎用性の高さをご覧いただきたいと思います。お楽しみに!