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ファイルを開こうとすると、展開を完了できません、と言われる

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

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

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

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

NEC Aterm WX5400HP をセットアップ

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

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

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