今回はSoftBankより販売されているAutomation Anywhere(オートメーションエニウェア)を利用して乗換案内ロボットを作成します。

Automation Anywhereは世界3,100社以上で利用実績がある世界で最も選ばれているRPAプラットフォームで、大規模導入や複雑な業務の自動化に最適なRPAです。

このページはレスポンシブデザインで制作していますので、
手元のiPhoneやiPadでこちらを表示した上で
ご自身のPCで実際にロボットを作成して頂ければ理解が深まります。

また本ページ説明の疑問点はコメント頂ければ出来る範囲で回答致します。

ロボット概要

指定のExcelファイルに記載された出発駅、到着駅の名称をYahoo!路線情報に転記し、検索結果を書き戻すという作業を最終行まで繰り返すというものです▼

はじめに

今回使用するのは出発駅と到着駅の書かれたExcelファイルと「Automation Anywhere Enterprise v11」アプリケーションです。

Automation Anywhereは完全サーバ型のRPA製品なので、Control Roomと呼ばれる管理機能にログインを行いながら開発を進める必要があります。

以下が今回使用する「Automation Anywhere Enterprise Client 11.3」のアプリケーションです▼

利用するExcelファイル

sample.xlsxというファイルを利用します。

A列 出発駅
B列 到着駅
C列 料金

上記ヘッダーと共に、2行目~6行目のA、B列には任意の文字列が入力されています。

こちらのC列を埋めていくイメージです▼

Automation Anywhere Enterprise Clientの起動

1.デスクトップ上に配置したAutomation Anywhereのアプリケーションをダブルクリックします▼

2.管理画面のControl Roomへのログイン画面が表示されるので、「Control Room URL」、「User name」、「Password」を入力してログインしましょう▼

3.以下の画面が出てくるので、「Automate」を選択。
「Help me automate!」を選ぶとマニュアルが記載されているページに飛ぶことができます。
「Don’t show again」のチェックボックスにチェックを入れておくと、今後はこの画面をスキップすることが出来ます▼

4.Automation Anywhereでは「レコーディングでの開発」と「コマンドスクリプト形式での開発」の二種類の方法で開発することができます。
マクロの記録をイメージして頂くとわかりやすいのですが、レコーディングでの開発はエラーが出やすいので、基本的にはコマンドスクリプトでの開発を行います。
「Workbench」をクリックしましょう▼

4.以下の新しい画面が立ち上がりました。
こちらから開発を進めていきますので、画面を最大化しておきましょう▼

変数の作成

1.まずは「値を一時的に保管しておく箱」である変数を作成します。
画面右側の「VARIABLE MANAGER」を選択し、下部の「Add」ボタンをクリック▼

2.以下の画面が出てくるので、今回の交通費検索で使用するExcelファイルの項目にある「料金」の変数を作成します。
変数の型を表すVariable Typeでは「Value」を選択し、「Save」をクリックしましょう。
その際、初期値が空白であるという旨の警告が表示されますが、そのまま「はい」を押して保存します▼

3.変数の作成が完了したら、まずはこのBotを保存しておきましょう。
画面上部の「Save」ボタンを押してください。botの名前は何でも良いのですが、今回は「交通費」という名称で保存しておきます▼

Yahoo!交通費検索を開く

1.まずは「Yahoo!交通費検索」のwebページを開きます。
左側のコマンドリストから、「Web recorder」のタブを開き、「Open browser」コマンドを右側へドラッグ&ドロップ▼

2.詳細を選択するウィンドウが現れるので、開きたいページのURLを入力します。Yahoo!交通費検索のURL”https://transit.yahoo.co.jp/”を入力して保存しましょう▼

3.これでYahoo!交通費検索のページを開く作業が完了しました▼

Excelファイルを開く

1.次に「Sample.xlsx」のExcelファイルを開く作業を追加します。
先ほどと同様に、左側のコマンドリストからExcelのタブを開き、「Open Spreadsheet」を1行目の下にドラッグ&ドロップ▼

2.詳細入力画面が現れるので、「…」ボタンをクリックして開きたいファイル(Sample.xlsx)を選択しましょう。窓へファイルパスをそのまま入力することも可能です。
また、その際、下部の「Contains Header」のチェックボックスにチェックを入れておきます▼
(今回のExcelファイルは1行目がヘッダーとなっているため、1行目を読み込まないようにする機能)

3.以上でExcelファイルを開くことができたので、次はExcelファイルのセルに記載されている内容をAutomation Anywhereに取り込みましょう。
コマンドリストのExcelタブから「Get Cells」をドラッグ&ドロップ▼

4.詳細設定ボックスの「Get All Cells」を選択して保存しましょう。
この作業はExcelを開いた際には基本的に実施する作業です▼

5.次は、これからExcelにYahoo!交通費検索から取得した料金の値を入力していくための下準備です。
最初の料金が入力されるセルである、「C2」セルをアクティブにする作業を実施します▼

6.コマンドリストのExcelタブから「Go to cell」をドラッグ&ドロップ▼

7.詳細入力ボックスの「Specific cell」を選択し、「C2」と入力して保存しましょう▼

8.ここまででExcelの作業は終了です。
次は実際にYahoo!交通費検索ページで、検索を実施します▼

WebページにExcelから駅名を転記

1.今から実施する作業は、Excelファイルの1行目から最終行まで同じ処理を繰り返して実施していきます。
繰り返し処理を実施するために、まずは「Loop」コマンドを設定しましょう▼

2.コマンドリストの「Loop」タブから「Each row in an Excel dataset」をドラッグ&ドロップ▼

3.次に、コマンドリストから「Object Cloning」を「5.Start Loop」と「7.End Loop」の間にドラッグ&ドロップ。ここから先は全てLoopコマンドの間に処理を追加していきます。
Automation Anywhereではウィンドウの操作のためにこの「Object Cloning」を多用します▼

4.詳細設定画面一番上にある窓のプルダウンをクリックして、どのウィンドウを操作するかを選択します。
現在開いているウィンドウが列挙されていると思いますが、「乗換案内、時刻表、運行情報~」となっている、Yahoo!交通費検索ページを選択しましょう▼

5.ここからは少しコツが必要となります。
先ほどの窓の真下にある「Capture」ボタンをクリックするのですが、クリックしたままの状態(マウスの左クリックを押下したまま)で少し待ってみてください▼

6.そうすると、先ほど選択したウィンドウに画面が切り替わります。
そのまま操作したい部分にカーソルを持って行きます。今回の場合は「出発駅」を入力する検索窓ですね▼

7.以下の図のように検索窓の部分が赤枠で囲まれて点滅する状態になったら、押下したままだったマウスのクリックを離してください▼

8.以下のように操作対象の情報が表示されていれば成功です。
これで操作対象が設定できましたので、次に何を入力するかを設定していきましょう▼

9.「Select Action」のプルダウンから「Set Text」を選択して、その下の窓にて「F2」ボタンを押してください。どの変数から値を入力するかを選択する画面が出てきますので、「Excel Column」を選択。
すると何列目に記載されているセルの値を入力するかを選べるので、出発駅の記載が有る1列目の「1」を入力しましょう▼

10.以下のようになっていれば問題ありません。
そのまま「Save」ボタンを押しましょう▼

11.到着駅に関しても同様に、「3.」以降の手順を実施します。
到着駅は2列目に記載されているので、「Excel Column」の列選択は「2」を入力しておきましょう▼

12.駅名の入力が完了しました。
次は検索ボタンを押す手順となりますが、ここまでの手順を実施しただけでは、実際のYahoo!交通費検索の画面には駅名は入力されていません。
手動で駅名の入力をしておきましょう▼

13.手動入力が完了したら、再度「Object Cloning」コマンドをドラッグ&ドロップ。
先ほどと同様にYahoo!交通費検索のページを選択したら、「Capture」で検索ボタンを選択しましょう▼

14.「Select Action」の部分は「Click」を選択します。
「Click」と「Left Click」の2つの選択肢があるのですが、どちらを選んでも問題ありません。▼

15.再度、Automation Anywhereの開発画面から、webブラウザに戻り、検索ボタンを手動でクリックして検索結果画面が表示されている状態に進めておきます▼

Webページから検索結果をExcelに転記

1.次に、標示されている交通費検索結果を安い順に並べ替える作業を追加します。
「Object Cloning」をドラッグ&ドロップ▼

2.操作対象のウィンドウは「新宿」から「都庁前」への乗換案内を選択▼

3.ここで、選択したウィンドウの書き換え作業が必要です。
というのも、今回はExcel1行目の検索結果なので、「新宿」から「都庁前」となっていますが、2行目以降はこの項目も変わるので、操作対象に指定しているwebページのウィンドウ名も変わってしますからです▼

4.ウィンドウ名の中の駅名の部分にどんな値が来ても対応ができるように、以下の図のように、駅名部分を「*」に変更しましょう。
Excelなどでもそうですが「*」はワイルドカードと呼ばれ、その部分にどんな値が入っても対応できるように使用する記号です▼

5.変更が完了したら、先ほどまでと同様に「Capture」ボタンをクリックしながら、画面遷移したウィンドウの「料金の安い順」を選択しましょう▼

6.キャプチャが完了したら、内容が表示されているのを確認して、以下のボタンを押してみましょう▼

7.ここで、先ほどキャプチャした情報の詳細が見られるのですが、Automation Anywhereが認識のために参照している情報に「双眼鏡マーク」がついています。
ここで確認していただきたいのは「HTML HRef」の部分です。
これは、現在表示しているページのURLの情報なのですが、この情報もExcel2行目以降は変わってしまうので、参照してはいけません。
双眼鏡マークがついている場合はクリックして外しておきましょう▼

8.「Select Action」は「Click」を選び、保存▼

9.これで、検索結果を安い順に並べ替える作業を設定できました。
同様に、実際のwebページでも「料金の安い順」ボタンを押して並べ替えておきましょう▼

10.それでは、安い順に並び変えた検索結果の一番上に表示されている料金を変数に取得していきます。
再度「Object Cloning」をドラッグ&ドロップ▼


11.先ほどと同様のウィンドウを設定しましょう▼

12.今回キャプチャするターゲットは料金の部分です。
「Capture」をクリックしながら、画面が遷移したら以下のように料金が表示されている部分を選択してください▼

13.キャプチャができたら、再度、キャプチャした内容の詳細内容を開きます▼

14.この中を見ていくと、「178円」が認識されている項目は「HTML Inner text」の部分であることが解ります。
確認ができたら、双眼鏡マークは追加することなく、そのまま詳細画面を閉じましょう▼

15.Select Actionは「Get Property」を選択して、Select Propertyは「HTML Inner Text」を、Assign to Variableは一番初めに作成した「料金」の変数を選びましょう。
これで、表示された料金の値を変数に格納することができました▼

取得した料金をExcelに転記する

1.それでは、「料金」の変数に格納した値をExcelの空欄のセルに転記していきましょう▼

2.コマンドリストの「Excel」タブを開き、「Set Cell」をドラッグ&ドロップ。こちらも「End Loop」の一つ手前に置きましょう▼

3.詳細設定画面が出てきます。
予め、4行目で記入を行いたいセルをアクティブにしているので、「Active Cell」にラジオボタンを選択しておきます。
そして、「Cell Value」はF2ボタンを押して「料金」の変数を呼び出しましょう▼

4.これで、セルへの料金の記入ができたので、アクティブセルを一つ下の行にずらしておきましょう。次の転記のための下準備です。
この作業が無いと、参照、検索はループを行うものの、転記の部分で同じセルへ記入を繰り返してしまいます。
Excelタブから「Go to Cell」をドラッグ&ドロップ▼

5.一つ下のセルに移動するために「One cell below」を選択します▼

6.Excelへの転記作業は完了です▼

ループ処理を終了する条件設定

1.ここまでで、基本的な転記作業の設定は完了しましたが、このままだと8行目以降に繰り返しが突入した場合に空白のセルをコピーして、交通費検索をしてしまいエラーが出てしまいます▼

2.これを防ぐために「空白のセルにたどり着いたらループを終了する」設定を付け加えていきましょう▼

3.条件設定は「If/Else」コマンドを使い実施します。
コマンドリストの「If/Else」タブから「Variable」のコマンドをドラッグ&ドロップ。
今回のドロップ先はループの始まりのすぐ下の部分です。
転記作業を実行する前にまずはセルが空白かどうかを判断させるためです▼

4.詳細設定画面が出てきますので、「If Condition」の「Edit」ボタンを押しましょう▼

5.さらに詳細を設定する画面が出てきますので、以下の通りに設定しましょう▼
・Variable:Excel Column(1)
 ⇒Excelの一列目、出発駅が入る列を参照する設定です。F2ボタンを押して設定ができます。
・Operator:Equal to (=)
 ⇒上記で選んだ値に対する条件の設定です。
・Value:Fix 「””」
 ⇒何に等しいのかを設定します。今回は空白を設定したいので固定値として空白を意味する「””」を記入。Excelと同じですね。

6.これでSaveすると、「If」と「End If」の行が追加されました。
この間にループを終了するコマンドを挿入します。つまり、空白のセルを検出したらループを終了するという条件を設定するということですね。
コマンドリストのLoopから「End Loop」をドラッグ&ドロップ▼

7.これで、全ての設定が完了しました。
最後に、全ての作業が終わったら自動的にWebブラウザを閉じるという作業を追加しておいてもよいかもしれません。
方法は、コマンドリストのWeb Recorderから、「Close Browser」を末尾にドラッグ&ドロップ▼

8.完成です。以下のようになっているかを確認してみましょう。
7行目や10行目の「Comment」は自動的に挿入されるものですが、特に実行時への影響はないので、気にする必要はありません▼

9.botの実行方法は、画面上部にある「Run」ボタンをクリックするだけです。
問題なく実行できるかどうかを確認してみましょう▼

最後に

Automation Anywhereでのロボット開発、お疲れ様でした。

いかがでしたでしょうか。

RPAツールではフロー形式での開発がメジャーですが、Automation Anywhereはコマンド形式で開発を進める部分が特徴的です。

とは言え、左部にあるコマンドリストからドラッグ&ドロップを繰り返して開発を進めるという点は他のRPAツールと同様で、高度なプログラミング知識は必要ありません。

この形式に慣れると、「一画面に表示できる情報量の多さ」と「複雑な処理の細かな開発のし易さ」によるメリットを大きく感じられます。

他には「高い認識力」「SAPを始めとした操作できるシステム対象の多さ」「初期導入から管理機能を利用できる」部分がAutomation Anywhereの主な特徴です。

以上から、「高機能なRPAツールを活用して大規模に社内展開を進めていきたい」といった要望を満たすことができるツールがAutomation Anywhereです。

ご参考になれば幸いです。