【UiPath入門講座】VBSとUiPathの違い:WEBブラウザを同時に2つ開く

  • このエントリーをはてなブックマークに追加

 今回が講義の第二回目となります。前回はVBAとUiPathで使われているVB.netの基礎的な違いを学んでいただきました。今回は、さらにVBSとUiPathについて比較をしましょう。なぜならばRPAの開発にはVBSを活用することが多いからです。

さて、VBSを見たことがありますか?かなり歴史があり、古そうなデザインでこのアイコンです。S字のマークのようなもの。名前からするとVBSですから、EXCELのVBAとも似ているような気がしますよね?VBAを書ける人は多いでしょうが、VBSに変換してRPA製品がVBSを動かす方が安定的です。そのためよくVBSを記述することが多いのです。

VBAからVBS、そしてUiPathやWinActorなどのRPA製品を一緒に使いこなしてみましょう。いまから、VBSからUiPathに変換していきます。

 

経験者によるマンツーマントレーニング!プログラミング未経験から『UiPath』を短期間でマスターしたい方はこちら↓

 

 

VBS(ブイ・ビー・スクリプト)とは?

VBScript(ブイ・ビー・スクリプト)マイクロソフトによるスクリプト言語です。そのため、ファイルやフォルダの操作(ファイルのコピーや移動、フォルダの作成、削除など)や、テキストファイルの処理は、「VBScript」でおこなうのです。EXCELのVBAについての学習は前回行いましたが、VBAで記述した方が速度も速く処理が安定していますので、OFFICEソフトの中の動作はVBAで記述するのが一般的です。そのため、今日はEXCELの外の動作なので、VBSで記述する必要があります。それを学びます。VBAと似ていますが、少し記述方法が違いますので注意してください。

VBS(ブイ・ビー・スクリプト)とUiPathを触ってみよう

[VBS]googleメールとスケジュールを開く

さあ、CromeブラウザでGooglleのカレンダーページとGoogleメールをそれぞれ開くというプログラムを作りましょう。

まずはVBSで作ります。

①メモ帳アプリを立ち上げましょう。

②そこに下記を記述(ブルー背景以外のテキスト)します。できれば、学習なので自分で記述しましょうね。


1.Dim objWSH,MailUrl,CaleUrl  ← Dimを使って変数(objWSH,MailUrl,CaleUrl)を宣言
2.MailUrl=”http://mail.google.com/mail/”  ←変数を指定(MailUrl)
3.CaleUrl=”http://calendar.google.com/calendar/”  ←変数を指定(CaleUrl)
4.Set objWSH=CreateObject(“WScript.Shell“)  ← 動かし方を指定す(objWSHという変数が”WScript.Shell“である)
5.objWSH.Run MailUrl,1  ←「メールを表示」を実行(objWSH)
6.objWSH.Run CaleUrl,2048  ←「カレンダーを開く」変数を実行(objWSH)
7.Set objWSH=Nothing  ←変数を指定(objWSH)


解説

水色に解説を書きましたが、4行目を理解しておきましょう。”WScript.Shell”とは何でしょう?ご存知ですか?

これは、Windowsと対話する「Shell」つまり「指定した動かし方をコンピュータに伝えるプログラム」のこと。

つまり4行目は 変数である”Set objWSH”は、プログラムをセットする、つまり動作そのものを指定しているのです。

そして5行目でその変数である”Set objWSH”を実行させます。数字の”1″とはVBSでは表示を意味しています。

6行目の2048は、新しいタブで表示することを意味しています。

そして7行目は、”Set objWSH=Nothing”とは、変数を解除する、つまり停止、プログラムを終了するということです。


③では、ファイルを保存します。「メール_スケジュール確認.vbs」と拡張子を.vbsとしてデスクトップに保存しましょう。

※:ファイルは拡張子等を表示する設定にしておきましょう。

④では「メール_スケジュール確認.vbs」をダブルクリックして実行しましょう。

ブラウザにおいてgoogleメールとgoogleカレンダーが新規でChromeブラウザが開きましたか?

※アカウントの設定が行われており、Cromeブラウザにおいてログインが自動でできる状態を想定しています。

[UiPath]準備:googleメールとスケジュールを開く

では、本題です。早速Chromeでメールページとスケジュールが開くか自分で10分ほど考えてくださいね。

①新規プロジェクトのプロセスをクリックして名前と説明に「メールとカレンダーを開く」と名前を付けます。

前提条件:ツール設定

今回はIEではなく、Chromeを動かします。そのためにはUiPathの「ホーム」タブをクリックしてから、左の「ツール」を設定する必要があります。つまりChromeを動かすためにはUiPathで動くようにChromeにツールの設定をする必要があるからです。

 

UiPath拡張機能のChromeをクリックしてください。これにより、Chrome側にUiPathの命令で動くように設定ができるのです。

③インストールできたかの確認は、Cromeを再起動してから、メニュー>拡張機能でインストール状況が確認できます。

④ブラウザChromeを開いてGoogleメールページを開きましょう。アクティビティーはわかりますね?

アクティビティ

「ブラウザーを開く」です。

変数

変数は、「MailUrl」と「CaleUrl」を使ってください。

変数とは・・・プログラミング開発において「値を入れておく箱」です。しかしそれには一定のルールがあります。文字か、数字なのかなど分類したものを入れておくものです。変数には主に下記の形式があります。今回はURLを指定しますので、文字列を操作しますので、String型になります。ちなみにGenericValueはUiPath独自のフォーマットで複数の形式に対応する型です。


さあ、自分で考えて10分考えてください。自分で考えることが一番の学習です。


UiPathでの開発

UiPathのアクティビティは300以上あり、大きく2通りのワークフロー(シナリオ)を作ることができます。今回のアクションでは「ブラウザを連続で開く」だけです。

  1. UiPathでVBSのコードを丸ごとUiPathに変換
  2. アクティビティーのVBSを使用
  1. UiPathでVBSのコードを丸ごと変換の場合

⑤ 変数を設定する

変数の形式は文字列なのでStringにします。かつ文字は[“]ダブルクオテーションで囲むんですよね。忘れた人は第1回目に戻って復讐してください。

[UiPath]googleメールを開く

⑥アクティビティの「ブラウザを開く」をダブルクリック(ドラッグ)する。

⑦変数「MailUrl」を右にあるプロパティーの「入力」に設定します。Mといれるだけで候補が表示されます。それを選択します。

 ⑧同様にブラウザを選択します。今回はChromeでしたね?選択しましょう。設定が完了したら、ファイルをすべて保存してください。

⑨では、デバック(テスト)しましょう。googleメールページが表示されたら次に進みます。

⑩ さて、あと一つで終わりですね。Chromeでもう一つタブを作り、そこにURLを張り付ければいいのです。わからなくなった場合は自分で実際に再現してみましょう。そして動作の漏れがないか、確認をします。(自分で考えましょう)

[UiPath]googleスケジュールを開く

⑪新しくタブを開きましょう。いくつか方法はありますが、ショートカットを使います。ブラウザに新しいタブを開くのは「Ctrol+t」です。

アクティビティでは「Ui Automation>要素>キーボード>ホットキーを押下」がショートカットを設定できるアクションです。選択の理由は端末の動作が常に安定していること。つまり端末の画素数が異なっていても影響を受けないことです。(ほかにも手段はありますが。)

⑫Doの中に置きます。そしてキーのところに「t」と入力して下さい。そして保存します。デバッグしてみてください。Chromeメールページが開いた後に新規でChromeタブが開きますか?

⑬では、タブが点滅していることを見てください。こちらに「文字を入力」しましょう。

アクティビティから「文字を入力」をドラッグして設定します。

⑭画面上で指定をクリックして先ほどのブラウザを選択します。グレーアウトしています。それをURL点滅部分をめがけてクリックします。

それでも何か、エラーのようです。理由を見てみましょう。「必須のアクティビティTEXTが指定されていない」とエラー表示されました。

⑮どうも下のテキストに入力する必要があるようです。「文字を入力」というアクティブティなので、カレンダーのURLを入力したら動きそうですね。早速入力してみましょう。事前に変数設定をしたいたので「CaleUrl」を入力します。プロパティーも下記のように入力前にクリックにチェックを入れます。

⑯早速デバッグ(テスト)して実際に動くか確認します。アドレスは指定されていますが、ページに移動していません。どうしてでしょう。そんなときは実際に人間が動作を検証しましょう。

⑰人間はアドレスを入力したら無意識に「Enter」を押しています。それをロボットにもさせれば動きそうです。早速修正しましょう。

⑱「Ui Automation>要素>キーボード>ホットキーを押下」をもう一度使いましょう。enterを実行するのです。enterは+のタブをクリックするとリストが表示されます。

 

⑲上記のように「キー」に入力されました。ファイルを保存してから早速デバッグを実行してみましょう。実行が成功したはずです。

出力画面

⑳実行時にエラーがあるか、どうかは下の「出力画面」をクリックして確認します。成功なら、実行を終了したと記載され、実行時間が掲載されています。エラーの人はもう一度やり直しましょう。

VBSからUiPathへの変換まとめ

さあ、ブラウザを二つ開くだけでしたが、いかがでしたでしょうか?VBSからUiPathへの変換は以上となります。

 2.アクティビティーのVBScriptを使用 

についての回答です。

  1. UiPathのアクティビティ>システム>VBScriptを呼び出し を使ってVBSのソースのPathを指定して実行するだけです。

どこまでVBSを利用し、UiPathに変換するかは会社ごとにガイドラインがありますので、ルールに準じて開発を行いましょう。またIEで同じ動作を行うとどうなるか、時間がある場合はテストしてみてください。すこしChromeとは動きが異なります。

ではお疲れさまでした。これで第二回は終わりとなります。下記は実践的な内容になりますので、気になる人は読んでみてくださいね。ではまた来週お会いしましょう!

 


[補足:実践]:RPA製品開発とVBSやVBAなどの変換について

 RPAの開発ではTOBEフローを作成後、ロボットフローを書くのですが、そのVBAやVBSが含まれたフローの要件定義書(ロボット設計図のこと)を見ながら、SEは開発を始めます。そして机上のまま開発が終わり、RPA開発が初めてのスタッフや新人SEは安心するものです。しかし、テストで実行した際に、エラーになることが多いのも事実です。開発会社ならこの設計(要件定義)ではクレームになりかねません。

人間が実行することを想定したVBSのプログラミング 

それぞれの環境によって異なりますが、人間がVBAを実行していた時には問題なく動いていた動作が、ロボットでは実行端末の速度が遅くなったり、仮想の設定によりタイミングが間に合わずに動作がエラーとなり、止まってしまったりすることが多いのが事実です。
例えば、複数のファイルを一気に開いて、他のEXCELファイルに書き込み処理していたVBSを利用する場合があります。


 上記の通り、VBSとしては何も問題がありません。が、しかしRPA化する際には、ROBOTにおいてスムーズに動くように、一つファイルを開いたら、新規ファイルに表示のシートをまとめて張り付けたら、ファイルをすぐ閉じる。そして次のファイルを開いてマスターファイルに貼り付けて閉じる、それを繰り返したりするようにしたほうがPCに負担が少なくていいのです。下記がROBOT用のフローに変更した場合のフローです。(実際には繰り返しがあります)
そのように現場では人間が実行させてきたVBSの構造をそのまま使おうとしていることが多く、クライアントも開発の必要性がないと判断することが多いです。そしてそのためにテストのフェーズまで来て動作しないことに気付き、再度開発をやり直し、開発時間を追加することが多くなり非効率となる場合があります。待機時間の設定でも回避できますが、今後の運用を考えて実行機のスペックが低い場合などはメンバーに改善提案をする方が無難でしょう。大手の企業ではほぼこのようなフローに変更しており、開発者は運用時に備えた要件定義を作っています。

ROBOTが実行することを想定したVBSプログラミングに修正

 今回の例では、3つのファイルを同時に開くのではなく、test1.xlsxを開き、新規ファイルを開き、test1.xlsxのシートをコピーするし、すぐtest1.xlsxを閉じるプログラムに修正します。
 

それに対して経験者であれば。開発以前にロボットが最適に動くためのメモリーや、ハードディスクなどのスペック条件を確認し、仮想環境や、ネットワークの権限や、スピードによるタイミングの設定に至るまで細部に開発フェーズから考慮します。そしてテストフェーズをスムーズに行うことができます。さて、まとめを書きますね。

[まとめ] VBAもVBSも人間が実行してきたフローのままではエラーになる場合が多いので、エンジニアは、IT環境に準じてロボットが動くように仕様変更する必要がある。

RPAの開発においてVBAもVBSの取り扱いは重要です。必ずUiPathの開発前にVBAやVBSの動作がある場合は、その開発担当が在籍していればその方に確認しておきましょう。いないときは困りますね。その場合はUiPathの開発者が内容を確認するしかありません。そのため、VBSを含むプロセスでは。開発にそのVBSを把握する時間を考慮しなくてはなりません。

そしてそれらを想定せずに開発を行っていた場合は、担当のマネージャーやPM(プロジェクトマネージャー)に報告し、開発時間について相談しましょう。

実践のまとめ

RPAの開発では上流が重要です。VBAやVBSのソース内容をレビューして動作確認後、要件定義書の漏れがないように作成しましょう。

 

 

オンラインで1ヶ月でできるようになる??『UiPath』を短期間でマスターしたい方はこちら↓

メンターとUiPathを30日でマスターしませんか?

プログラミング経験なし。UiPathの勉強をこれから始めたいけど…続けられるか不安…。

そんな方向けにオンラインメンターとともに30日間でUiPathアカデミーをクリアするコースが人気です!

わからないことはメンターにチャットで聞けてUiPathがマスターできる・・・!


コース内容詳細はこちら

SNSでもご購読できます。

コメント

コメントを残す

*