こんにちは。こんばんは。
皆さんいかがお過ごしですか?7月になり我々の組織にも新しいメンバーが増えて嬉しい限りです。
Bizrobo!経験者ということで鍛えがいがありそうです。
※この記事を書き始めたのは7月の頭なのにもう月末でした。。。
さて、今回はタイトルにもある通り、Automation Anywhere(以下、AA)でVBSを実行する記事を書いてみたいと思います。技術的な記事は読むものの、書いたことがないなぁ~と。
それではいってみます!
VBAでいうFunctionプロシージャ
例えばこんなフローがあったとします。
このVBSで実行したいことは、引数で渡した値を処理して、AAに戻すというものです。
No8のアクション(VBScript:開く)が上記のようなスクリプトです。引数の説明は後ほど。
引数を文字列結合して、AAに戻す。単純なスクリプトです。
では引数の設定はどうなっているのでしょうか。
引数はリスト型変数でのみ渡すことが出来ます。また、リスト型変数内のインデックスは使用する数、準備しておかなければなりません。今回でいうと2つ使用しますので、こんな感じです。
基本的には文字列型になりますので、そこもお忘れなく。
No9(VBScript:関数を実行)のVBSの実行アクションの詳細を載せ忘れましたね。こちらです。
ポイントとしては、実行したい関数名を入力すること、パラメータには、リスト型で作成した変数を設定することですね。
VBAでいうFunctionプロシージャですので、戻り値があります。このような場合は、上記のように出力変数に設定します。
それでは実行してみましょう!
VBS内に書いてあるMsgboxが2回表示されました。
最後にAAのメッセージボックスが表示されます。
と、このようにVBSに値を渡して処理をし、その結果を受け取るといった処理が完成しました。
今回の例はあまり実用的ではないですが、AAのアクションだけでは出来ないことを、どのWindowsPCでも使用出来るVBSを使って処理をすることが出来ます。
VBAでいうSubプロシージャ
続いて、先ほどとは代わって、VBSで処理だけしたいみたいな場合(VBAでいうSubプロシージャ)は、どのように書くか!例えばこんなフローがあったとします。
VBSのアクションの並びは先ほどと変わりません。このVBSで実行したいことは、引数で渡した値を処理するというものです。
大したことはしていませんが、引数の文字列を連結させて、メッセージボックスで表示させています。ちなみにリストに設定した値は以下のような感じです。
リストの設定アクションの説明をしていなかったですね。
このように指定のリスト変数を選択し、設定するインデックス番号を指定します。
指定したインデックスに設定するには、「置換する」に変数を設定しなければなりません。「$」で書きたい!という方も中にはいると思いますがそれが出来ないのです。。。
そして、最後に出力を変数に代入を設定する必要があります。空がこの変数に代入されるので何に使うか現状私は分からないです。笑
では、最後に実行してみましょう!
想定通りの結果が出せましたね。
まとめ
今回、AAのアクションパッケージにあるVBScriptを使ってVBScriptを実行してみました。
RPAを使っている方は分かると思いますが、RPAだけでは正直手が届かない場面が多々あります。私は今まで、WinActor、Bizrobo!、UiPathで開発をしてきましたが、どのツールでもexeをキックしたり、batをキックしたりと、「RPA×〇〇」で開発等をしてきました。
このようにRPAと何かを組み合わせることで、出来る幅も拡がりますので、ぜひチャレンジしてみてほしいと思います。
AAでVBSを使う場面として多いのは、Excelでの操作です。
ある程度はアクションパッケージ内の内容で解決出来ますが、例えば整形したファイルを最後、列幅の自動調整をしたい!や、指定列に対して3桁区切りを追加したいなどです。
レコーダーアクションやキーストロークを使うことで、出来なくはないですが、こけてしまうこともあります。そういった際にスクリプトでコントロールすることが出来れば大幅にエラーは減ります。
(追伸)ExcelならVBAだろという気持ちも分かりますが、AAはExcelを非表示した状態でVBAの実行が出来ないのと、そのためだけでにVBAを作るのはどうかなと考え、VBSを採用しています。
コメント