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 ステートメントは使わないようにしようと思います。


コメント

アクセス数の多い投稿

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

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

Teamsで日本語入力すると左上に変換ウィンドウが出る

Amazon Prime Videoで4K UHD映画を検索する方法

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

iPhone 12 Proと iPhone 8 Plusのサイズを比較

Microsoft Flight Simulator (2020)のPS4コントローラー設定

次期主力Wi-Fiルーター NEC Aterm WX5400HP

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

NEC Aterm WX5400HP をセットアップ