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 ステートメントを使用すると、プログラムの強制終了となるように読めます。
変数のクリアやファイルクローズは実行されるものの、Unloadや、フォームやクラスのTerminateイベントは実行されないのでやはり注意が必要です。
今後は可能であれば End ステートメントは使わないようにしようと思います。
コメント
コメントを投稿