RPA初心者向け講座❼
エクセルシートと2次元配列
両者の類似点を活用する
テレワーク集計表は、以下のとおり、エクセルシートを活用して、1回分の報告書の内容を1行に書き込み、報告書の提出が増えると、どんどん行を増やしていく形式となっています。
さて、個々のテレワーク報告書からそれぞれ読み取った情報をWinActorの配列情報として一旦保管しておき、これらを一気に集計表フォームに書き込む動作を行うシナリオ作成を考えることとします。そうすることで、コンピューターに実行させる動作としては、エクセルファイルをその都度、開いたり閉じたりすることなく、一度の開閉操作で動作させることができる上に、一行ごとの作業を報告書の数、つまり行数に応じて繰り返せばよいだけなので、シナリオ設計上もシンプルです。
次の図は2次元配列のイメージ図です。2次元配列のイメージは、正に縦横の平面上に箱が並べられているイメージです。エクセルシートとよく似ていると思いませんか? この特徴をシナリオ作成に活かします。
テレワーク集計表のセル座標確認
テレワーク集計表のセル位置
今回の課題はゴーヤンから提出された3日分のテレワーク報告書を「テレワーク報告書【集計表】」に一括記載することです。集計表にデータが入るセル座標を記載すると次の図のような感じで、座標を記載したセルにデータが入ります。
ここで念のため、セル位置の形式変換について復習いたしましょう。
WinActorにおいては、エクセルの「セルの位置」を示す形式として、「A1」のように、エクセルの各シートに付されたセル位置を記号で認識する形式「A1形式」のほか、「R1C1」として記載し、セル位置を認識する形式「R1C1形式」の2種類が用意されています。
「R1C1」は、Rが行(横)、Cが列(縦)を意味していますので、例えば、D10は、10行D列という意味ですが、Dと言う表記は、A、B、C、Dと4番目の列を示しているので、「R1C1形式」で表すと「R10C4」となります。
2次元配列上の割り当てイメージ
2次元配列の割り当てイメージを考えます。2次元配列は、例えば、配列[1,1]のような感じで、エクセルシートと大変似ていると説明しました。さらに具体的に平面上に2次元配列の割り当てイメージを書いてみると次の図のような感じになります。エクセルシートと全く同じです。
作成するシナリオの冒頭で「2次元配列(初期化)」を設定すると、このようにすべて空欄のシートがWinActorの配列として用意されるので、好きなところにデータを保管すればよいのです。どのような保管の仕方にするのかについては、シナリオ作成者が自由に設定することができますので、正に好きなように使えばよい訳ですが、一例として、イメージしやすい保管方法をご紹介します。
先ほどの「テレワーク報告書【集計表】」におけるセル座標位置を見てみると、1行目から4行目までは表題や表の見出しに使っていますので、実際にデータを書き込みたい場所は、5行目からです。最初のデータが5行目、次のデータが6行目、次に7行目と書き込むことになります。そうすると、2次元配列上の割り当てについても同じ座標になるようにしておくと、行と列の値が一致するので一層イメージしやすいかと思います。
要するに、2次元配列上の割り当てについては、どこを使ってもよいので、作成したい【集計表】と同じ座標位置にデータを保管しておくようにすると、仮想空間である2次元配列上の割り当てもわかりやすくなると思います。
セル座標ファイル上のデータの保管場所
セル座標ファイルについて覚えておられるでしょうか?何?忘れた?ちょっと復習いたしましょう。
そもそもゴーヤンのテレワーク報告書を【集計表】に自動集計したい訳ですが、各報告書から情報を読み取るためには、データが書き込まれているセル座標の正確な位置が重要です。
このセル位置情報を一括して保管しているのが「セル座標ファイル」でした。
コンピューターにこの情報を覚えさせる必要があります。そのためには、配列操作を行い、どこかの配列情報として保管しておく必要がありますが、今回は、先ほどの2次元配列での割り当てイメージにて考えたとおり、配列の割り当てとして1行目から4行目が空いているので、空いている1行目に「セル座標ファイル」の情報を保管することにします。このように割り当てると、2次元配列[R,C]だけで処理できる上に、列情報の順番も同じなので、大変わかりやすいと思います。
テレワーク集計表のシナリオ設計
シナリオ全体の骨格を最初に考える
さて、今回の課題に必要な基礎事項はすべて確認できましたので、いよいよ本格的にシナリオ作成へと進みたいと思います。
シナリオ作成で最も重要なことは、全体の骨格を最初に考えることです。パーツごとにあれこれ作成してから最後につなぎ合わせて完成させるという方法もありますが、このやり方は、シナリオの流れや変数の設定など後から不備を発見しづらくなりますのでお勧めしません。まずは、全体の骨格を最初に考えましょう。
全作業工程の確認
最初に、今回の課題について改めて作業工程を確認しましょう。
2次元配列操作(初期化)
今回のシナリオ作成においては、2次元配列操作を行いますので冒頭に「2次元配列操作(初期化)」が必要です。これ以降の工程についてはグループごとに確認して参ります。
グループ:セル位置取得
ゴーヤンのテレワーク報告書から正確に全記載情報を読み取るためには、「セル座標」が必要不可欠でした。そこで、最初のステップは「セル位置取得」です。上述の「セル座標ファイル」を事前に作成し、シナリオ上でセル位置情報を取り込みます。
グループ:全ファイルデータ取得
次に、予め指定したフォルダに集計したいゴーヤンのテレワーク報告書をすべて保管して置き、ここに保管したファイルを自動的に次々開いて、各ファイルに記載されている報告書の情報を読み取り、WinActorの配列情報として保管する工程が必要です。この工程を「全ファイルデータ取得」として、整理します。
グループ:全ファイルデータ設定
最後に、WinActorの配列情報として保管した全情報を「テレワーク報告書【集計表】」に書き込む工程です。この工程を「全ファイルデータ設定」として整理します。
今回の勉強はここまでといたしましょう。
次回からは、各グループの工程詳細について説明いたします。
お楽しみに!