RPA BANKをご覧のみなさま、こんにちは!「RPAをはじめてみようかな」と思っている(でもIT関連少々苦手、という)みなさまに向けたお気楽RPA解説連載、「さるでき流 RPAのはじめかた」、二桁までもうすぐの第9回をお届けしております。

いやー、季節もすっかり春めいてきましたね。

春はあけぼの。春眠暁を覚えず。花粉煙幕の如し。まあ要するに、「ぽかぽかしててスゲェ眠いわ、花粉症で目が開かないわで、とても作業にならないよ」という季節が襲来しております。みなさまいかがお過ごしですか。

え?ワタシですか?ワタシは現在沖縄暮らしですので、花粉の影響は「ほぼナッシン」となっております。はっはっは。羨ましいでしょう?むしろそのために移住したと言っても過言ではありませんからねっ!

…コホン。と、そんな憂鬱な春を快適に乗り切るためのニューソリューション。ええ、そうです。「春はロボットに頑張ってもらって、人間はごろ寝しながらお花見でも楽しもうじゃないですか」的な流れで、今回もRPAのお話をはじめていこうと思います。頑張ってね!コロボ君。

…見なかったことしまして。前回どこまでお話ししていたのかをザザッとおさらいしておきましょう。前回は『WinActor』シリーズの第2ステップとして、「Excelの自動化」に挑戦しておりました。

WinActorにはExcel専用のアクションもあって、なかなか良い感じに自動化ができましたが、これはまだまだほんの序の口。と言うか「コレってもしかしてExcelの数式を使えば、一瞬で終わるんじゃね?」レベルの自動化でしたので、今回はもう少し高度な「Excelイジり」に挑戦してみましょうね。

それではデスクトップ上のアイコンをクリックして、WinActor〜ファイトー!

【WinActorとExcelの準備】
さて、毎度おなじみWinActorの「メイン画面」と「フローチャート画面」、そして前回から加わった新しい仲間、『変数一覧画面』が表示されています。今回も変数一覧画面を使って変数の登録を行いますので、この3つの画面を開いておいてください。

そして、今回使用するExcelファイルがこちら。前回との違いは、ズバリ「複数行に渡ってデータが書かれている」ということです。(おっと、一応念のために整理しておきますが、横方向が「列」、縦方向が「行」です。複数「行」ということは、縦方向にデータが並んでいる、ということですね)

では、事前準備が完了したところで、今回の手順をご紹介しましょう。

STEP1 ひとつのセルに入った数字をGET(1行目)
STEP2 もうひとつのセルに入った数字をGET(1行目)
STEP3 そのふたつを足し
STEP4 隣のセルに記入(1行目)
STEP5 以下、2行目、3行目と続く

「前回と同じじゃん!」とか言ってはいけません。「だからソレExcelで簡単にできるってば!」とか言ってもいけません。「さてはこの人1回分のネタを2回でやろうとしているな!?」とか、(正解ですが)そういうことではないのです。ぶっちゃけExcelは、『複数行の操作ができれば、8割方勝ったも同然』なのですよ。

…おや?ディスプレイ越しに強烈な「疑いの眼差し」を感じますぜ、旦那。

とは言え侮るなかれ、RPAツールではこの「Excelの複数行操作」というものが結構なクセモノだったりします。ですので、今回はWinActorのその部分をじっくりと見ていくことにしますよ。

STEP1〜STEP4 しばらくダイジェストでお楽しみください
この辺りの流れは前回とほとんど同じです。みなさまは当然もうバッチリ!…だとは思いますが。「期末で忙しくてうっかり忘れちゃったー!」という方のために、設定方法をおさらいしておきましょう。

まず最初に、変数の設定をします。「ひとつめの数字を入れる用」「ふたつめの数字を入れる用」「計算結果の数字を入れる用」の、3つの変数をご準備ください。

次に、Excelからの「値の取得」の設定です。WinActorでは、Excel操作用に「専用のアクション」が用意されていますので、それを使って「対象のExcelファイルの指定」から「データの格納」までを一気に設定することが可能です。

四則演算についても、「専用のアクション」が用意されています。「ひとつめ」と「ふたつめ」を『足して』、「計算結果」に格納、と。こんな感じです。

最後にまた「Excel操作」のアクションを用意して、今度は「値の設定」を選びます。計算結果の変数を、対象の「Excelセル」に放り込めばシナリオ完成です。

ここまで設定が終わったら、1回シナリオを実行しておきましょう。前回同様に「Excelが立ち上がって」、「計算が行われ」、「C1のセルに結果が書き込まれたら」大成功です!

1点確認ですが、C列の2行目以降は、まだ『空白』のままですね?(「あれ?何かデータが書き込まれているよ!?」というアナタ。何か設定が間違っている可能性がありますので、前回の記事で詳しく手順を確認してくださいませ)

STEP5 複数行操作 その①
おつかれさまでした!1行目の処理が無事終わりましたね。これで準備はバッチリです。ここからは今回のお題、『2行目以降の操作』について、自動化の設定を行っていきましょう。

まずは、「変数」を『追加』します。

Q:何のための変数を追加するのですか?
A:「行を数える」ための変数を追加します。
Q:意味がサッパリわからないのですが?
A:奇遇デスネ。ワタシモデス。

それでは画面を見ていきますよ。変数一覧画面で「プラスボタン」を押して、『行カウンター』なる変数を追加してください。

追加できましたか?「初期値」には『1』を入れておきましょう。…おっと、勘の良いみなさまはピンときましたね?そうです、この値が「1行目」の「1」になります。

変数を追加したら、先程設定したExcel操作のアクションの「プロパティ画面」を開いて、「セル位置」の値を「A1」「B1」「C1」から『A%行カウンター%』『B%行カウンター%』『C%行カウンター%』へと修正します。

…ナニコノ呪文?ですね。うんうん、わかります。シレッとこういうのが出てくるのですよ、ITツールってヤツは、困ったことに。

『%変数%』と書くことで、WinActorがシナリオ実行時に中身を自動的に置き換えてくれます。変数の値が「1」の場合、「A%行カウンター%」は『A1』と置き換わるわけです。わーお、ホントに呪文っぽい。便利な呪文ですので、頑張って覚えてみてくださいね。

次に、ノードの「フロー」フォルダの中から、『繰り返し』という項目を選んで、フローチャートの中にドラッグ&ドロップします。

グワッと豪華なセットが出てきました。これが『繰り返しフロー』です。中に含まれる「繰り返しグループ」の枠にアクションを入れると、そのアクションをぐるぐると繰り返し実行してくれます。

…ただし、初期設定のままでは一生ぐるぐる回ってしまいますので、「プロパティ」から『回る条件』を設定します。「どんな条件になったら、この無限ぐるぐるから抜け出せるか」という設定ができるわけですね。

今回は試しに、「行カウンターが『5』になったら(5行目になったら)処理を終わらせる」という設定をしてみましょう。条件はこんな感じになります。

行カウンターの変数が「5以下」の時はぐるぐる回る、ということですね。

おっと、忘れていました。現在までのシナリオの設定内容では、行カウンター変数はずっと「1」のままになっていますので、永遠にぐるぐるが終わりません。

繰り返しの最後に、「カウントアップアクション」を追加しておきましょう。

よーし、設定OKです!それでは実行してみましょうか。コロボ君、カモーン!

おおー!ちゃんとぐるぐる複数行の計算が行われて、5行終わったら処理が停止しましたよ!完璧じゃないですかコロボ君―、すごいすごい。ワタシはお花見に行ってきますね。

STEP5複数行操作 その②
では、今回はコレにて終了!おつかれさまde…え?折角2回に分けたのに?コレじゃ流石に薄味過ぎますか?…で、ですよねえあははは。では!もうひとつ見ておくことにしましょうか。何をかと言いますと、「終了行をあらかじめ指定するのではなく、計算対象が無くなったら終了」というパターンです。

昔誰かが言いました。

Excelは日々「行」が増えるものです。
そう、それはまるで人間の「業」のように。

…えーと、何の話でしたっけ?そうそう、先程の複数行操作その①のように、WinActor側であらかじめ処理をする行数を決めておくというのは、設定的にはシンプルで良いのですが、決め打ちをしている分、Excel側で行が増えた時には対応が必要になります。それをなんとかしようじゃないの、というのがこちらのパターンです。

では、設定方法を見ていきましょう。

まずは先程の「繰り返しフロー」の設定まで戻って、繰り返し条件式を「空っぽ(無限ぐるぐるが発生する状況)」にリセットします。

その上で、フロー一覧の中から『分岐フロー』をドラッグ&ドロップで持ってきましょう。

分岐フローは、文字通り「設定した条件によって、処理の分岐(分かれ道)を作ることができる」フローで、今回はこんな感じの条件設定を行います。

いかがでしょう?「ひとつめの数字を入れる用」の変数が『空っぽ』かどうか、という状態を見ていますね。こうすることで、「その行は、計算するための数字が入っていない(True)/入っている(False)」という分岐を作ることができるのです。

・数字が入っていない時(True)には、「繰り返し終了フロー」を設定します。
・数字が入っている時(False)には、「ふたつめの数字を取得するアクション」以降のシナリオを行うように、アクションの位置を移動します。

最後に、グイッと分岐グループを繰り返しグループの中に入れます。

ではでは、動かしてみましょう!コロボ君、お願いしまーす。

おおおー!今回は回数を指定していないにもかかわらず、指定したときと同じように5行で処理が終わりましたよ!コロボ君、なんだかちょっと人工知能っぽくてカッコイイじゃないですか〜!

【今回のまとめ】
みなさまおつかれさまでした。「WinActor」を使った『Excelイジり(基本編&応用編)』いかがでしたか?

中盤でも触れましたが、Excelはこんな感じに「複数行」をコントロールできるようになると、やれることが一気に広がります。「100行の計算」でも「1000行のデータチェック」でもドンと来い!というわけですね。

(ちなみに…あまり触れないようにしていましたが、『列』の方は「A列」「B列」と「英字表記」ですので、数字のようなカウントアップがムズカシイのです。自動化対象のExcelを作る時には、「日々『列』が増えていくようなExcelは作らない!増やすのは『行』!」という合言葉を思い出してくださいね)

さてさて、「メモ帳」「Excel(単一セル)」「Excel(複数行)」と、少しずつできることが増えてきましたね。では次回は、満を持して「Web」に挑戦してみようと思います。

この連載の最初に扱った、「BizRobo!」でのWebサイトイジり。あっちのコロボ君と、「WinActor」のコロボ君のガチンコ対決です。よーし、楽しくなってきましたよ。まずは数ヶ月前の自分の記事を読み直して、BizRoboを思い出すことからはじめてみようかと思います。果たして絶賛耄碌中のワタシ(&みなさま)の記憶は蘇るか否か…次回もお楽しみに!