VBAの実行が不可解に中断される現象と,その解決法
仕事中に引っかかったのでメモ.
VBA/VBEのバグだと思うんだけど,Microsoftの技術情報には掲示がなく,ハマりました.
現象
(再現画像は用意できませんでした;発生要因わからないんだもん.)
VBAのコード実行中,ブレークポイントが設定されていないにもかかわらず,ブレークポイントが設定されているかのようにコードの実行が中断される.
もう一度,F5(実行)を押せば問題なく再開できる.
現状,Excel VBAとAccess VBAでの発生を確認しています.
原因
わ か ん な ー い !
冗談抜きに原因一切不明です.
過去ブレークポイントを設定した箇所で引っかかるなら「ブレークポイントの残骸でも残っているのかな?」とでも思うのですが,そういうわけでもないし.
もがく
- コンパイルしなおそう.
→だめでした. - そこにブレークポイントを設定して,解除してみよう.
→だめでした. - 問題が起こっている場所を切り取ってコンパイルしなおし,貼りつけなおしてコンパイルしてみよう.
→だめでした. - モジュールをファイルにエクスポート後削除,インポートしてみよう.
→試し忘れた. - 新しいブック(Excel)・データベース(Access)にモジュールをコピーしてみよう.
→これは大丈夫だった‥が,解決になってる気がしない.
解決
実はネットで探したら,類似の事例は起きているようです.
参考:http://unote.hatenablog.com/entries/2011/09/26
ここをもとに以下の手順を踏んでみたところ,
- この問題で実行が中断される.
- わざと Ctrl + Break を押す(見た目上何も起こらない).
- Ctrlを押しながら,デバッグのリセット(停止ボタンのアレ)を押す.
‥解決しました.
で,原因は?
わかるわけないだろばーかばーか!
そもそもなぜこのような現象が起きて,なぜこういう手順を踏んだら直るのか,本当意味が解りませんでした!