どうも、夢ノ島です。
UiPathでExcelの自動化をするときにExcelアプリケーションスコープはよく登場すると思います。
そこで問題になるのは
Excelアプリケーションスコープ内でエラーになった場合、TryCatchで囲んでいても、Catch部に入ったときにはExcelが閉じてしまっているため、エラー状況をキャプチャ・スクリーンショット取得できない
という問題です。
例えば、Excelを開いて色を塗るボタンを押下するワークフローがあったとします。
このボタンが、メニューバーが非表示だったり、ウィンドウ幅が狭かったりと、見つけられなかったとします。
この見つけられなかった状況のスクリーンショットを撮るために、Catch部にスクリーンショットを撮るアクティビティを置いてみました。
さて、この結果どうなるでしょう?
取れたキャプチャがこちら
というExcelと関係ない後ろで開かれていた画面のスクリーンショットを取得してしまいました。
これを解消するためには、Excelアプリケーションスコープのワークブック出力変数で変数を出力して操作することでスクリーンショット取得が可能になります
こんな感じでWorkbookApplication変数を出力してやると
ちゃんと撮れるようになりましたー!!
(WorkBookApplication変数を出力すると、Excelアプリケーションスコープを出ても自動的に閉じなくなるようです。
ただしこの状態のままだとワークブックが開いたままになりExcelプロセスが残ってしまう原因にもなるので、
ブックを閉じるアクティビティを入れておいた方が安心かもしれませんね。
おしまい