VBA共通:ブレークポイントを設定していないのに「コードの実行が中断されました。」が発生して実行が中断される。

Excelに限らずですが、VBAでコード実行時にブレークポイントを設定していないにも関わらず、「コードの実行が中断されました。」が表示されていちいち実行が中断されるようになってしまう場合があります。

今回はその対処方法について覚書。

対処方法1

コードを実行し、「コードの実行が中断されました。」が表示されたら[デバッグ]ボタンをクリックします。

モジュールシートのコードが黄色く反転して処理が止まるので、[Ctrl] + [Break] キーを押します。(※特になにか起きるわけではない)

[Ctrl]キーを押しながらツールバーの[■](リセット)ボタンを押します。

プログラムの実行が終了されるので、再度実行して中断されなくなったか確認してください。

この解決方法は今まで知らなくて、後述する対処方法2、3でだいたい直っていたのに今回直らなくて困っていたのですが、以下のブログの方法で解決できたので掲載しておきます。

私的な考えとかメモ、その他トラブルシュート

対処方法2

モジュールシートに記述されているプログラムをすべて選択して切り取り、メモ帳などのテキストエディタに貼り付けます。

※[Ctrl] + a で全選択、メモ帳で[Ctrl] + v で貼り付けできます。

テキストエディタに貼り付けたプログラムを再度全選択して、モジュールシートに貼り付けなおします。

対処方法3

モジュールシートに記述されているプログラムをすべて選択して切り取り、メモ帳などのテキストエディタに貼り付けます。

モジュールシートを削除(右クリック、XXXXの解放をクリック)します。

以下のようなメッセージが表示されます。

テキストエディタにプログラムコードが貼り付けてあることを確認した上で、「いいえ」をクリックします。

削除後、新たにモジュールシートを挿入し、挿入した新しいモジュールシートにテキストエディタに貼り付けておいたプログラムコードを切り取って貼り付けなおします。

まとめ

以上、上記3つのうちの何れかの方法でブレークポイントが設定されていない場所で中断される現象が回避できると思います。

ブレークポイントを設定してデバッグしたりした後にブレークポイントをすべて解除したにもかかわらずこのような状態になることがまれにあります。

よく「ゴミが入った」って表現したりします。

とりあえず忘れないように覚え書きしておきました。