VBAの呼び出し(Invoke VBA)が実行できません。

VBA呼び出しアクティビティを使用し、指定ファイルのマクロを実行させようとするとエラーが発生します。(下記ログ)
エクセル側のオブジェクトモデルを許可する、にもチェックを入れましたし、プロシージャの名前も間違っていなかったです。
また、コード自体をブックに入れて「マクロを実行する」アクティビティを実行させるとちゃんと動きます。
何が原因なのでしょうか?

エクセルアプリケーションスコープ(すべてのマクロ許可)

vba呼び出し(ロボット内フォルダ下指定ファイル、マクロ名:Test5)

vba中身

Sub Test5() -
PrintOut -
End Sub -

こんな感じです。


20.4.1-beta.22

Source: Invoke VBA

Message: マクロ ‘Test5’ を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。

Exception Type: System.Runtime.InteropServices.COMException

RemoteException wrapping System.Runtime.InteropServices.COMException: マクロ ‘Test5’ を実行できません。このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。
at UiPath.Excel.Activities.InvokeVBA.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)


VBA呼出は、.basファイルを選択し、その中のSub関数をCallするものです。

image

EXCELファイルに仕組んでいあるマクロをキックするには、「マクロを実行」を使用します。

image

きちんとbasファイルを読み込ませて実行させていますが、動きませんでした。

自分がやってみたら出来たんだけどなぁ…

こんにちは!
随分過去の記事なのでもう解決しているかもしれませんが…。
basファイルを実行する対象のエクセルファイルでマクロ許可の設定はしていますか?

vba

エクセルのオプションからセキュリティセンターを開くとあるはずなので、ここのチェックが漏れていると該当エラーが発生すると思います。

それと、ロボが異常終了して、EXCELのプロセスがゾンビ化しているとダメでした。タスクマネージャーからEXCELをKILLしたらうまく行ったので。。。

ご丁寧にありがとうございます。
エクセルのセキュリティセンターへのアクセスは当然許可していました。
この時の原因はbasファイルの一番上にある「option explicit」が原因でした。
basを出力させてそのままでは使えない、ということですね。

そういえば、最終的な解決をお知らせ出来てなかったことお詫び申し上げます。
今後は解決時に記載するように気をつけます。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.