Power Automate for Desktop: Excelマクロを End ステートメントで終了すると実行時エラー

Power Automate for DesktopからExcelマクロを実行する際に、次のようにマクロをEndで終了したところ、Power Automate for Desktopで実行時エラーが発生しました。

Public Sub uExecMacro(ByVal uString As String)
    Debug.Print uString
    End
End Sub

エラーメッセージは「マクロを実行できませんでした (マクロを含むファイルが無効な項目のリストに含まれていないことを確認してください)。」でした。

そこで、次のようにExit Subでプロシージャーから戻るようにしたところ、エラーは解消しました。

Public Sub uExecMacro(ByVal uString As String)
    Debug.Print uString
    Exit Sub
End Sub

Endでプロシージャーを終了すると、Power Automate for Desktop側では正常に終了したとみなされないようです。

Endで終了すると、深いマクロ呼び出しからでもサクッと終了できるので便利に使用していましたが、こういう副作用があるとは。

もしかしたら、普段から End での終了は注意した方が良いのかもしれません。


なお、上のSubプロシージャーは説明用で、実際には、For ループをEndで中断して、マクロから戻ろうとしていました。


2022/11/08 追記

次のページを読むと、単独の End ステートメントを使用すると、プログラムの強制終了となるように読めます。

End statement

変数のクリアやファイルクローズは実行されるものの、Unloadや、フォームやクラスのTerminateイベントは実行されないのでやはり注意が必要です。

今後は可能であれば End ステートメントは使わないようにしようと思います。


コメント

アクセス数の多い投稿

セキュリティ対策ソフトのノートンが詐欺ソフトまがいになってしまってショック

ZIPファイルを開こうとすると、展開を完了できません、と言われる

Excel 2019 クエリが原因で日本語入力の一文字目が勝手に確定する

Excelのテーブルに行や列を挿入する際のエラー

オカムラ家具のOAチェアー、コンテッサを分解清掃

突然滅茶苦茶遅くなったPCがWindows Updateのキャッシュクリアで復活

ChatGPTが日本語からVBAのコードを生成できてたまげる

Windows セキュリティーのビックリマークが消えない

Power Automate Desktopでブラウザでダウンロードしたファイルを処理する

Excel VBAからODBCを使ってデータを簡単に取得する