アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (4件)

こんばんは。



お三方の回答は有効なのですが、1回だけではダメです。
それは、コードが走っている間に割り込ませるのですから、すばやくというか、とまるまで、信号を送り続けるという方法を取ります。

>最悪PCの強制終了を考えていますが、ファイルするのを忘れてしまったので。。。

PCの強制終了より、タスクマネージャでのアプリケーションの終了という方法があります。
しかし、当たり前のことですが、実際問題としては、コードさえ間違いをしなければよいのですが、それはダメなんですか?無限ループになりやすいコードは、Do ~ Loopの条件が曖昧だったりすると起きますね。それから再帰呼び出しとか。最初に、ステップモードで動かしてみるのがよいのですが、DoEvents を置いておけば、信号は受け取りやすくなります。

ただし、
Application.EnableCancelKey = xlErrorHandler
のエラーハンドラーの抜け落ちはダメですからね。

かく言う私も、Excel 2007 でイベント・ドリブン型でうっかりやってしまいました。一回、失敗すれば、それに対する失敗はしないものです。でも、Excel 2003 までは、イベントは、だいたい1万回ぐらいループで抜け出すようですが、2007は反応と違うようですね。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。解決しました。

お礼日時:2009/09/17 09:45

こんにちは。



エスケープキー(ESCキー)で抜けだせます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/08/19 14:50

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2009/08/19 13:05

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

    • good
    • 1
この回答へのお礼

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

お礼日時:2009/08/19 13:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!