RPA初心者向け講座

配列操作の基本

2022年10月11日

【広告】RAKUTEN

RPA初心者さま向け講座❹

RPA初心者さま向け講座
RPA初心者さま向け講座

RPA(Robotic Process Automation:ロボティック・プロセス・オートメーション)とは、これまでに人間が手作業で行っていた業務をソフトウェアのロボットに任せ、自動化していく技術のことです。この講座では、RPAの初心者さま向けにWinActorに関するシナリオの作り方やデータ設定の原理について説明。

第1回 RPAとは何か?
第1回 RPAとは何か?

RPA(ロボティック・プロセス・オートメーション)とは、手作業で行っていた業務をソフトウェアのロボットに任せ、自動化する技術です。エクセルを使用して日々の事務を進めておられる方が多いので、作業を自動化で飛躍的に効率が上がります。

第2回 エクセル操作
第2回 エクセル操作

Excel 操作(値の取得)は、エクセル上の情報(データ)をWinActorに「取得」し「変数の設定」で予め指定した変数に取り込む操作、Excel 操作(値の設定)は、WinActorの変数に保管されている情報をエクセル上に書き込む操作です。

第3回 繰り返し操作とカウントアップ
第3回 繰り返し操作とカウントアップ

「繰り返し操作」とは、同様の作業を繰り返し実施したい場合に、事前に繰り返す回数などを指定してその回数分を実施するための操作です。ロボット(パソコン)による単純作業の自動化には欠かせない操作です。カウントアップとペアで使います。

第4回 配列操作の基本
第4回 配列操作の基本

「配列」は、変数の箱を並べたイメージで考えるとわかりやすいと思います。一直線に並べたものが「1次元配列」、平面的に並べたものが「2次元配列」です。1次元配列の場合、自動的に「配列[1]」「配列[2]」「配列[3]」・・・と番号を振ってくれます。

第5回 配列操作の応用
第5回 配列操作の応用

配列操作の応用でセル座標情報を配列に取り込み、コンピューターに覚えさせます。後から実際のデータを自動的に拾いに行くときに便利だからです。配列はインデックスで管理するので、簡単に大量の情報をコンピューターに覚えさせることができます。

第6回 エクセルファイルの自動開閉
第6回 エクセルファイルの自動開閉

多数のエクセルファイルを自動集計するためには、自動的に開いたり、閉じたりすることが必要不可欠です。ファイル名を個別に指定せず、RPAが自動的に順次エクセルファイルを開くと汎用性が高まります。「ファイル一覧(ファイル名)取得」を活用します。

第7回 2次元配列操作
第7回 2次元配列操作

WinActorの2次元配列のイメージは、正に縦横の平面上に箱が並べられているイメージです。エクセルシートとよく似ていると思いませんか?この特徴をシナリオ作成に活かします。2次元配列の割り当てイメージを考えます。エクセルシートと全く同じです。

第8回 セル位置の情報取得
第8回 セル位置の情報取得

エクセルの自動集計に関するシナリオ作成について詳しく説明します。まずは、冒頭の「2次元配列操作(初期化)」及び「グループ:セル位置取得」に関するシナリオ作成について説明いたします。 「グループ」のボックスを設置し、各工程ごとにわけて整理します。

第9回 全情報の取得シナリオ
第9回 全情報の取得シナリオ

全ファイルデータ取得について説明します。各テレワーク報告書から情報を取得し、配列情報として保管します。ポイントは「ファイル一覧(ファイル名)取得」で取得したファイル名を用い、これを「Excel開く(前面化)」を使って開くところです。

第10回 全情報の設定シナリオ
第10回 全情報の設定シナリオ

全ファイルデータ設定について説明します。ポイントは、エクセルシートと2次元配列の構成が類似してるところを応用した情報処理です。2次元配列上での割り当てイメージ図で要確認します。最後に「Excel操作(名前を付けて保存)」で書き込みが完成です。

第11回 全シナリオの総括
第11回 全シナリオの総括

変数の初期値は自分で設定します。その整理はシナリオの最終確認として極めて重要です。ミスの見落としを防ぐために、工程のグループごとに大別し、初期値設定の要否で区別することで見やすく再配置することがお薦めです。エラー発生の最大の原因は変数設定の誤りです。

第12回 シナリオの汎用性(最終回)
第12回 シナリオの汎用性(最終回)

新しい課題にチャレンジするにあたり、変数の初期値設定等を少し変えるだけで、これまでに作成したシナリオ操作の骨組みをそのまま活用できることをご紹介いたします。このシナリオの汎用性の高さを実感してくださいませ。シナリオ自体の構成は何も変更する必要はないのです。

previous arrow
next arrow
RPA初心者さま向け講座
第1回 RPAとは何か?
第2回 エクセル操作
第3回 繰り返し操作とカウントアップ
第4回 配列操作の基本
第5回 配列操作の応用
第6回 エクセルファイルの自動開閉
第7回 2次元配列操作
第8回 セル位置の情報取得
第9回 全情報の取得シナリオ
第10回 全情報の設定シナリオ
第11回 全シナリオの総括
第12回 シナリオの汎用性(最終回)
previous arrow
next arrow

第3回例題の課題

 前回の「繰り返し操作とカウントアップ」において、シンプルな例題として、テストファイルのSheet1にA列の1行目から10行目までに1から10までの数字が入っており、これをWinActorの繰り返し操作を使って、自動的にSheet2のB列の1行目から10行目までに書き写す操作についてシナリオ作成を試みました。

 シナリオとしては、きちんと動作するので特段の問題はない訳ですが、実際のWinActorの動作を少し詳しく見ると、繰り返し操作においては、

【繰り返し操作1回目】Excel操作(値の取得2)によりSheet1のセル位置A1から情報「1」を取得、Excel操作(値の設定2)にて、Sheet2のセル位置B1に取得情報「1」を設定し、カウントアップで変数「セルの行」の値に1を加えて次の繰り返しに進みます。

【繰り返し操作2回目】Excel操作(値の取得2)によりSheet1のセル位置A2から情報「2」を取得、Excel操作(値の設定2)にて、Sheet2のセル位置B2に取得情報「2」を設定し、カウントアップで変数「セルの行」の値に1を加えて次の繰り返しに進みます。

【繰り返し操作3回目】Excel操作(値の取得2)によりSheet1のセル位置A3から情報「3」を取得、Excel操作(値の設定2)にて、Sheet2のセル位置B3に取得情報「3」を設定し、カウントアップで変数「セルの行」の値に1を加えて次の繰り返しに進みます。

・・・と進んでいく訳ですが、何か気づきませんか? そうです。Sheet1とSheet2の間を行ったり来たりしながら作業が進んでいきます。人間の動作であれば、このような非効率なことはしないと思います。最初にSheet1のA列1行目から10行目までに入力されている1から10までの数字の情報をすべて取得してから、Sheet2のB列1行目から10行目までに1から10までの数字の情報を設定すると思います。

 要するに、一つの変数「取得情報」を用いて、情報のやり取りを行っていることに起因します。そうすると「では変数を10個にすればよいのでは?」となりますが、「取得情報1」「取得情報2」「取得情報3」・・・と設定するのも何か大変な感じがします。そこで、役に立つのが「配列操作」です。

配列とは何か?

 WinActorにおける配列操作の説明を行う前に「配列とは何か?」について説明いたします。

 「配列」は、変数の箱を並べたイメージで考えるとわかりやすいと思います。一直線に並べたものが「1次元配列」、平面的に並べたものが「2次元配列」です。変数だけを使って10個の変数を準備しようとすると、先ほど説明したとおり、「取得情報1」「取得情報2」「取得情報3」・・・と設定する必要がありますが、配列を使用すると、例えば、名称を「配列」とすれば、1次元配列の場合、自動的に「配列[1]」「配列[2]」「配列[3]」「配列[4]」・・・と番号を振ってくれるので、手作業での設定を省くことができます。

次元配列のイメージ
2次元配列のイメージ

1次元配列操作

配列操作の選択

 WinActor画面上部の選択バーから「ライブラリ」を選ぶと、その中で「03_変数→02_辞書と配列」と進むと、配列操作がいろいろと準備されています。

 配列操作には、1次元配列操作と2次元配列操作の2種類あることがわかりますが、ここでは、簡単な1次元配列操作について説明します。赤枠で囲ったところをご覧ください。「1次元配列操作(初期化)」「1次元配列操作(情報取得)」「1次元配列操作(情報更新)」の3種類あります。

配列操作の選択画面

1次元配列操作(初期化)

 配列操作を行うときには、必ず配列操作(初期化)が必要とされています。要するに「リセット」ですね。最初に、配列のリセットが必要であると覚えていただくだけでOKです。

1次元配列操作(初期化)のプロパティ画面

 シナリオ作成エリアでプロパティ画面を開くと左図の画面が現れます。変数を設定する箇所などは何もありません。シナリオ中の必要なところに配置すればOKです。簡単ですね。

配列操作による情報の流れ

 Excel操作の場合においては、エクセル上のデータをWinActorの変数に情報取得する場合には、Excel操作(値の取得)又は(値の取得2)を使い、WinActorが取得した情報をエクセル上に設定するときには、Excel操作(値の設定)又は(値の設定2)を使いました。

Excel操作における情報の流れ 「値の取得」と「値の設定」

 さて、1次元配列操作では、1次元配列操作(情報更新)と1次元配列操作(情報取得)がありますが、情報の流れがわかりにくいですよね。

 重要なポイントは、配列操作については直接エクセルと情報の受け渡しをするのではなく、WinActor上の変数との間で、情報の受け渡しを行うところです。つまり、次の図のようなイメージで情報の受け渡しが行われます。

 WinActor上に設定した「変数A」から配列[x]に情報を伝達して配列[x]の情報を更新する操作のことを「1次元配列操作(情報更新)」と言います。情報は、変数から配列へと伝達されます。

 一方、配列[x]から情報を取得し、WinActor上に設定した「変数B」に情報を伝達する操作のことを「1次元配列操作(情報取得)」と言います。情報は、配列から変数へと伝達されます。

配列操作による情報の受け渡しイメージ

 変数の場合においては、情報を変数に入れる際が「値の取得」、情報を取り出し、どこかに置く際に「値の設定」という呼び方をしていますが、配列では、配列が持つ情報を変数に入れる操作のことを「情報取得」と呼んでいます。用語の定義が紛らわしいので、わかりにくいと思いますが、結局は配列よりも変数に着目し、変数が配列から情報を取得するので「情報取得」と呼んでいるみたいです。

 ところで、折角の機会なので、変数や配列について、より正確に理解していただくために、念のため申し上げておきますが、情報の流れを示す上述の2つの図においては、黄色のボールの情報が伝達されていく様子を示していますが、よく見ていただくと、黄色のボールは次々に移っていくのではなくて、次々とコピーされて箱の中に入って行っています。つまり、WinActorにおける情報の伝達は、操作の過程に従って、情報(黄色のボール)が移動しているのではなく、まるで複製が増えていくように情報がコピーされていくところが重要です。情報の伝達が行われても、情報の提供元にはその情報が残っていることをお忘れなく!

 したがって、配列操作においては、変数から配列に情報を伝達する操作のことを「情報更新」と呼んでいます。配列の箱の中は、初期化によって空箱になっていますが、その後の操作で情報がその都度、変数から伝達されて更新されていますよというイメージです。

1次元配列操作(情報更新)

 次に、「1次元配列操作(情報更新)」について説明します。「何? そもそも配列って何かまだよくわからない?」ということですか。まあ、気にせず、このプロパティ画面を見てください。

1次元配列操作(情報更新)のプロパティ画面

 左図の赤枠をご覧いただくと、「1次元配列の指定インデックスの情報を更新します。指定インデックスに情報がない場合、指定インデックスに情報を設定します」と記載されています。何を書いているのか、さっぱりわかりませんね。WinActorは国産だと聞いていますが、これを作った方はどこの国の人なのでしょうね?ははは。

 要するに、1次元配列操作(情報更新)を行う際には「配列名」「インデックス」「情報」の3つを指定する必要があるということです。

 配列名は、配列で使用する箱の名称です。イメージ図では、箱の名称を「配列」としていました。変数の場合と同様に、名称は何でもOKです。わかりやすい名称を付けてください。

 インデックスは「配列[1]」「配列[2]」「配列[3]」「配列[4]」・・・と番号を振っている番号のことです。同じ配列名でも番号ごとに箱が違いますので、このインデックスを用いて識別します。

 情報の欄には、配列[x]に情報を伝達する変数名を登録します。上述のイメージ図であれば「変数A」となります。

1次元配列操作(情報取得)

 最後に、「1次元配列操作(情報取得)」について説明します。

1次元配列操作(情報取得)のプロパティ画面

 このプロパティ画面を開くと「配列名」「インデックス」「取得情報」の3種類を登録します。取得情報の欄には、配列[x]から情報を取得する変数名を登録します。上述のイメージ図であれば「変数B」となります。

 これらのプロパティ画面での設定を踏まえた上でもう一度、情報が配列と変数との間で伝達されるイメージ図をご覧ください。最初にご覧いただいたときよりも流れが鮮明に見えてきたのではないでしょうか?

ゴーヤン
ゴーヤン

皆さま、今回の勉強はここまでです。
配列操作の基本はご理解いただけましたか?

次回は、配列操作を使ったシナリオ作成について説明いたします。

【広告】U-NEXT


【広告】アソビュー