趣旨
今回、ExcelVBAをUiPathから呼び出す際に止まりやすいと感じるケースをいくつかあげたいと思います。
そのケースは主に以下の3つのケースかな?と思います。
1,VBAでポップアップが出てきてUiPathでボタンを押下させるもの
2,VBAがある画面に対して「sendkeys」を実行するもの
3,Excelのマクロブックを開く際に自動でマクロが走るもの
1,VBAでポップアップが出てきてUiPathでボタンを押下させるもの
このケースは、VBAマクロで「MsgBox」を使用しているものです。
この「MsgBox」で出てきたポップアップのボタンを押下する際に「並列処理」を使うことが多いですが、その時にそのポップアップのボタンが引っかからないもしくはボタンは押下されているものの押し方が微妙で次に進まないなどの事象が考えられます。
2,VBAがある画面に対して「sendkeys」を実行するもの
「sendkeys」の対象画面は常に「active」でないと反応しないためUiPathで別の画面がアクティブ化していると誤動作が発生してしまいます。
3,Excelのマクロブックを開く際に自動でマクロが走るもの
これは、Excelマクロブックに「auto_open」マクロが入っている場合マクロが走っている間にUiPathから次の命令が飛ぶためExcelからエラーを出てきてその後UiPathも止まる流れです。
Excelアプリケーションスコープで実行部分の最初に待機アクティビティを入れるか外部にVBSマクロを走らせて、そのマクロに「DisplayAlert」※を操作する部分を入れるかどちらかが対応策になるのではと思います。
※DisplayAlert
VBAマクロで、Excelから出てくるアラームの表示を行うかどうかの変数です。
・True→アラーム表示
・False→アラーム非表示
以上、ご参照までに。