Automation Anywhere A2019 「Excelの高度な操作」パッケージの使用例

Automation Anywhere

V11までのExcelコマンドでは、セルの値を取得したり設定したりすることはできても、列や行の挿入・削除といったシートの編集を行うコマンドはありませんでした。そのため筆者は、シートの編集を行う操作が必要なときは、PowerShellスクリプトで作成しておいて、Task BotからそのPowerShellスクリプトを実行する仕掛けにしていました。A2019では、アクションが追加になっているので、シートの編集を行う操作をキー操作ではなくて、専用のアクションで行えるようになりました。A2019を使うときは、シートの編集操作をA2019の機能だけで実装してみようというユーザーもいるのではないでしょうか。
ここでは、Excelシートに列を追加して計算式を挿入する操作を、A2019の機能だけで実装する例を紹介します。

ここで紹介しているBotのデモ動画は こちら で参照できます。

Botの要件

(1)編集前の表(注文データ.xlsx)

・「商品コード」と「数量」の間に「単価」を挿入する。
・「数量」の右側に「金額」を追加する。

(2)編集後の表(注文データ編集.xlsx)

・「単価」は、VLOOKUP関数を使って(3)単価表から取得する。
・「金額」は、計算式で単価✕数量を求める。
・「商品コード」の昇順に並び替える。

(3)単価表(商品マスタ.xlsx)

アクションリストの全体概要

下記がアクションリストの全体概要です。5, 11, 27, 42, 52行目の処理内容については、以降で具体的に説明します。

「単価」欄をC列「合計」欄をE列に追加する

この処理の概要です。

7行目の処理内容について具体的に説明します。
「Excelの高度な操作」パッケージの「行/列を挿入/削除」アクションを使っています。

【詳細設定】
[列の操作]-[次の位置に列を挿入]を選択し、テキストボックスに「C」を入力します。

C,E列の2行目以降に計算式を入力する

この処理の概要です。

24行目の処理内容について具体的に説明します。
「Excelの高度な操作」パッケージの「セルの数式を設定」アクションを使っています。

【詳細設定】

今回、各Excelファイルは「C:\サンプルデータ\EXCEL」フォルダに置くものとします。セルに直接設定する場合のVLOOKUP関数の式は以下の内容です。

'=VLOOKUP(B2,'C:\サンプルデータ\EXCEL\[商品マスタ.xlsx]ベース'!$B$2:$C$16,2,FALSE)

A2019のアクションでExcelの式を設定する際には、「$」文字の扱いに注意が必要です。「$」を文字として使用する場合には「$$」と2個連続して使用しますので、[指定のセルの数式を入力]欄の内容は下記の通りです。

=VLOOKUP(B$S_row$,'C:\サンプルデータ\EXCEL\[商品マスタ.xlsx]ベース'!$B$2:$C$16,2,FALSE)

 

商品コードの昇順に並び替える

この処理の概要です。

32行目の処理内容について具体的に説明します。
Excelの「並び替え」ウィンドウを表示するアクションはA2019に無いので、「キーストロークのシミュレーション」アクションを使っています。[ウィンドウを選択]欄の値が$window-5$になっていますが、変数$window-5$の値は「注文データ編集.xlsx」です。

【詳細設定】
キー操作「Alt + A」で[データ]タブのコマンドを表示して、キー操作「Alt + SS」で「並び替え」ウィンドウを表示します。

罫線を引く

この処理の概要です。

48行目で、キー操作「Ctrl + A」で、値があるセル全体を選択し、キー操作「Alt + H」で[ホーム]タブのコマンドを表示します。51行目の内容について具体的に説明します。

【詳細設定】
キー操作「Alt + BA」で罫線を引きます。

書式をコピーする

この処理の概要です。

56行目でセルD1を選択し、58行目でキー操作「Ctrl + C」でコピー、61行目でE1を選択しています。63行目以降の内容について具体的に説明します。

(1)「形式を選択して貼り付け」ウィンドウを表示する。

【詳細設定】
キー操作「Shift + F10」で右クリックメニューを表示し、キー操作「S + ENTER」で「形式を選択して貼り付け」ウィンドウを表示します。

(2)[書式]を選択する。

【詳細設定】
[書式(T)]ラジオボタンを選択します。

【余談】

Excelの機能は数えきれない程あるので、A2019になってExcelの操作をするアクションが増強されたといっても、操作によっては「キーストロークのシミュレーション」アクションに頼るしかありません。「キーストロークのシミュレーション」アクションで自動化する場合には、対象のアプリケーションの内部処理を待つために、キー操作とキー操作の間で遅延時間を設けるなどの処置が必要になります。安定した動作ができるようになるまで、今回の例でも調整に時間が掛かりました。
EXCELの操作を自動化する方法としては、A2019の機能を使ってすべて実装する方法と、VBA等のAPIで実装する方法の2つが考えられますが、今回、シートの編集操作を「Excelの高度な操作」パッケージを使って実装した感想としては、VBA等のAPIで実装するスキルがある場合は、VBA等のAPIで実装するのが良いと感じました。