- ベストアンサー
VBA 無限ループから抜ける方法は?
VBAでときにうっかり無限ループに陥るミスを やらかしてしまいます。キーボードからストップ をかけてVBAの編集可能な状態に戻すにはどうしますか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 お三方の回答は有効なのですが、1回だけではダメです。 それは、コードが走っている間に割り込ませるのですから、すばやくというか、とまるまで、信号を送り続けるという方法を取ります。 >最悪PCの強制終了を考えていますが、ファイルするのを忘れてしまったので。。。 PCの強制終了より、タスクマネージャでのアプリケーションの終了という方法があります。 しかし、当たり前のことですが、実際問題としては、コードさえ間違いをしなければよいのですが、それはダメなんですか?無限ループになりやすいコードは、Do ~ Loopの条件が曖昧だったりすると起きますね。それから再帰呼び出しとか。最初に、ステップモードで動かしてみるのがよいのですが、DoEvents を置いておけば、信号は受け取りやすくなります。 ただし、 Application.EnableCancelKey = xlErrorHandler のエラーハンドラーの抜け落ちはダメですからね。 かく言う私も、Excel 2007 でイベント・ドリブン型でうっかりやってしまいました。一回、失敗すれば、それに対する失敗はしないものです。でも、Excel 2003 までは、イベントは、だいたい1万回ぐらいループで抜け出すようですが、2007は反応と違うようですね。
その他の回答 (3)
- z-volantis
- ベストアンサー率14% (26/181)
こんにちは。 エスケープキー(ESCキー)で抜けだせます。
お礼
ありがとうございます。それでも駄目です。
- merlionXX
- ベストアンサー率48% (1930/4007)
Ctrlキー+Pauseキー だったかな?
お礼
No1さんへの返信の通りです。 最悪PCの強制終了を考えていますが、ファイルするのを忘れて しまったので。。。 ありがとうございました。
- kawais070
- ベストアンサー率52% (2242/4283)
Ctrl キーを押しながら Break キーを押したらいかがでしょうか。
お礼
ありがとうございます。 Ctrl キーを押しながら Pause/Break キー でも駄目なんです。 Windows XP SP3 excel2003 ですが。
お礼
返信がおそくなりました。すみません。 {コードが走っている間に割り込ませるのですから、すばやくというか、とまるまで、信号を送り続けるという方法を取ります。} ありがとうございました。解決しました。