RPA初心者向け講座❺
テレワーク報告書のセル座標確認
最初に、改めて集計したい「テレワーク報告書」のフォームと個々の項目のセル座標を確認いたしましょう。テレワーク報告書と各項目のセル座標については以下のとおりでした。
次に、テレワーク報告書【集計表】を確認いたしましょう。
これを基にして「セル座標ファイル」を作成しましたよね。覚えていますか?
セル座標ファイルにおいては、A5に「F4]、B5に「F3」、C5に「F2」、・・・、P5に「C11」として16列にデータが入っています。今回は、これらのデータをWinActorの一次元配列に取り込む操作について説明いたします。
セル座標情報を配列に
1次元配列操作(初期化)
1次元配列操作を実行する場合には、シナリオの最初に「1次元配列操作(初期化)」を使います。この操作にはプロパティ画面での設定がないので、セットするだけです。
繰り返し操作
繰り返し操作をセットした上で、今回はその中の操作を組み立てることになります。セル座標ファイルにおいては、A5に「F4]、B5に「F3」、C5に「F2」、・・・、P5に「C11」として16列にデータが入っていますので、繰り返し操作のプロパティ画面を開き、回数欄において「値⇒16」として設定します。
セル座標の形式変換
WinActorにおいては、エクセルの「セルの位置」を示す形式として、「A1」のように、エクセルの各シートに付されたセル位置を記号で認識する形式「A1形式」のほか、「R1C1」として記載し、セル位置を認識する形式「R1C1形式」の2種類が用意されています。
「R1C1」は、Rが行(横)、Cが列(縦)を意味します。「A1」が「R1C1」であることは、簡単にわかると思いますが、例えば、D10は、10行D列という意味ですが、Dと言う表記は、A、B、C、Dと4番目の列を示しているので、「R1C1形式」で表すと「R10C4」となります。
「なぜ、わざわざ、このようなわかりにくいことを説明しているのか?」と思っておられる方々も多いのではないかと思いますが、「A1」や「D10」といった表記方法では、行の位置については数値を用いていますのでコンピューター操作上処理しやすい訳ですが、列は違います。A、B、C、Dというアルファベットの記号を一つずつずらすためには、数値化した表記形式が必要となるからです。
「ライブラリの18_Excel関連→09_セル位置」と進むと「R1C1形式→A1形式」という操作がありますが、これは、Excelのセル指定をR1C1形式からA1形式に変換する操作です。
「その1」と「その2」の2種類がありますが、「その1」は、R1C1形式の行と列について、変数を別々に指定できます。セルの行と列をそれぞれ一つずつ移動させるような操作を用いる際には、こちらを使用します。
「R1C1形式」で考えると列移動を数値化できるので、最初にこの形式でセルの位置を指定し、これを「A1形式」に変換して用いるときに使用します。
R1C1形式→A1形式その1
セル座標ファイルのA5から開始して、B5、C5、・・・P5まで移動させたいので、繰り返し操作上は、R1C1形式で、R5C1から開始して、R5C2、R5C3、・・・R5C16まで移動させます。
「R1C1形式→A1形式その1」のプロパティ画面を開くと、R1C1形式行、R1C1形式列、結果(A1形式)という3つの欄があります。
R1C1形式で、R5C1から開始して、R5C2、R5C3、・・・R5C16まで移動させたいので、これらの欄には変数「セルの行」と変数「セルの列」を準備します。変数一覧表において、「セルの行」の初期値は「5」、「セルの列」の初期値は「1」と設定しておきます。
A1形式に変換した結果は変数「指定セル」に保管します。
Excel操作(値の取得)
次に「Excel操作(値の取得)」を設定します。プロパティ画面を開き、各欄の設定を行います。
ファイル名の欄には変数として「セル座標ファイル」とします。後ほど、変数一覧にて初期値の詳細を設定する必要があることを忘れないように注意してください。
次にシート名ですが、セル座標ファイルのSheet1にデータが記入されていますので、「値⇒Sheet1」と値を設定します。
セル位置の欄には先ほどA1形式に変換した結果が保管されている変数「指定セル」とします。
最後に、格納先変数ですが、いつものように「取得情報」としています。
1次元配列操作(情報更新)
Excel操作(値の取得2)で変数「取得情報」に入れた情報を用いて配列の情報更新を行います。配列名は「配列」とします。配列[1]、配列[2]、配列[3]、・・・、配列[16]と情報更新していきます。1次元配列操作(情報更新)のプロパティ画面を開きます。
配列名には「配列」を用います。「配列」の初期値の設定は不要です。1次元配列操作(初期化)によってすべて空白となっています。
インデックスはセルの列の移動に合わせて対応するので変数「セルの列」を設定します。
配列に入れる情報は、Excel操作(値の取得)で用いた変数「取得情報」にありますので、これを指定します。
ところで、一連の操作は何を実行しているのか、きちんと理解できていますか? 念のため、もう一度、復習のために図解説明を見てみましょう。
エクセルファイルの「セル座標ファイル」においては、セル情報が記載されています。最初の情報は、5行目A列に書かれている「F4」という値です。この値を配列[1]に保管しようとしています。なぜか?セル座標をコンピューターに覚えさせておくと、あとから実際のデータを自動的に拾いに行くときに便利だからです。
そもそも、氏名→F4は何を意味しているのか、正確に理解できていますか?ゴーヤンの提出したテレワーク報告書の氏名が書かれているセル座標です。セルF4(4行目F列)を見てください。「ゴーヤン」と名前が書いてありますね。この座標を位置を配列[1]に入れて覚えさせた訳です。
カウントアップ
今回の一連の操作においては、1つずつ移動させたいのは、変数「セルの列」です。ということで、カウントアップにおいては、これをセットすると、一つずつ値を増やし、セルの列を自動的に移動させることができます。
セルの列が1から16まで移動するので、計算結果の欄には、変数「セルの列」を指定します。加算値は1ですね。
本日のまとめ
繰り返し操作で何が行われているのかについて、念のため、図解説明いたします。
【1回目の操作イメージ】5行目A列の情報「F4」を配列[1]にセット
【2回目の操作イメージ】5行目B列の情報「F3」を配列[2]にセット
【3回目の操作イメージ】5行目C列の情報「F2」を配列[3]にセット
●
●
●
【16回目の操作イメージ】5行目P列の情報「C11」を配列[16]にセット
配列操作の応用方法は理解できましたか?
操作はそれほど複雑ではないと思いますが、まずは、何を行っているのかを正確に理解することが必要不可欠です。
次回は、エクセルファイルを自動的に開いたり、保管したりする操作について説明します。
お楽しみに!