• ベストアンサー

VBA 無限ループから抜ける方法は?

 VBAでときにうっかり無限ループに陥るミスを  やらかしてしまいます。キーボードからストップ  をかけてVBAの編集可能な状態に戻すにはどうしますか。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 お三方の回答は有効なのですが、1回だけではダメです。 それは、コードが走っている間に割り込ませるのですから、すばやくというか、とまるまで、信号を送り続けるという方法を取ります。 >最悪PCの強制終了を考えていますが、ファイルするのを忘れてしまったので。。。 PCの強制終了より、タスクマネージャでのアプリケーションの終了という方法があります。 しかし、当たり前のことですが、実際問題としては、コードさえ間違いをしなければよいのですが、それはダメなんですか?無限ループになりやすいコードは、Do ~ Loopの条件が曖昧だったりすると起きますね。それから再帰呼び出しとか。最初に、ステップモードで動かしてみるのがよいのですが、DoEvents を置いておけば、信号は受け取りやすくなります。 ただし、 Application.EnableCancelKey = xlErrorHandler のエラーハンドラーの抜け落ちはダメですからね。 かく言う私も、Excel 2007 でイベント・ドリブン型でうっかりやってしまいました。一回、失敗すれば、それに対する失敗はしないものです。でも、Excel 2003 までは、イベントは、だいたい1万回ぐらいループで抜け出すようですが、2007は反応と違うようですね。

catshoes01
質問者

お礼

返信がおそくなりました。すみません。 {コードが走っている間に割り込ませるのですから、すばやくというか、とまるまで、信号を送り続けるという方法を取ります。} ありがとうございました。解決しました。

その他の回答 (3)

回答No.3

こんにちは。 エスケープキー(ESCキー)で抜けだせます。

catshoes01
質問者

お礼

ありがとうございます。それでも駄目です。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Ctrlキー+Pauseキー だったかな?

catshoes01
質問者

お礼

No1さんへの返信の通りです。 最悪PCの強制終了を考えていますが、ファイルするのを忘れて しまったので。。。 ありがとうございました。

  • kawais070
  • ベストアンサー率52% (2242/4283)
回答No.1

Ctrl キーを押しながら Break キーを押したらいかがでしょうか。

catshoes01
質問者

お礼

ありがとうございます。 Ctrl キーを押しながら Pause/Break キー でも駄目なんです。 Windows XP SP3 excel2003 ですが。

関連するQ&A