UiPath Blog
Try Catchアクティビティを使用すると、エラー発生時にワークフローが停止することを防止できます。しかし、Try Catchアクティビティがキャッチするエラーは、.Net FrameworkのSystem.Exceptionを継承した例外であるため、VBAマクロ内部で発生したエラーは対象となりません。そのため、エラーハンドリングがされていないVBAマクロ内でエラーが発生すると、VBAマクロが停止してしまいます。こうした状況を防止するには、VBAマクロ内にも別途エラーハンドリングをする必要があります。
エラーハンドリングがないVBAマクロでエラーが発生すると、下記のような形でVBAマクロが停止してしまいます。 (VBAマクロのエラーはTry Catchアクティビティのキャッチ対象ではないため、Try Catch内であるかどうかに関わらず停止します。)
上記のような状況を防止するには、VBAマクロ内にOn Error GoToステートメントを実装します(VBAエラーハンドリングの詳細な説明は、VBAのナレッジとなりますので本項では割愛します)。 Execute MacroアクティビティはVBAマクロの戻り値を受け取ることができますので、VBAマクロの処理結果に応じて、その後の処理フローを変化させることができます。
※なお、上記のようにエラーハンドリングがされていても、VBAプロジェクトの設定によってはエラー発生時にVBAマクロが停止することがあります。この場合、VBAプロジェクトのエラートラップの設定が、「エラー発生時に中断」以外になっているかどうかご確認ください(「エラー発生時に中断」だと、エラーハンドリングが実装されていても止まってしまいます。)。当該設定のダイアログは、 VBAエディターのメニュー[ツール] - [オプション]で表示できます。
Topics:
TroubleshootingTeam, UiPath