表題の件なのですが、
例えばエクセルシートの適当な位置にボタンを配し、以下のようなソースを組んだとします。

Private Sub CommandButton1_Click()
s=0
Do While (s<15)
s = s + 1
Loop
End Sub

もしも誤って
s=s+1の行をコメントにしたら無限ループとなり
エクセル及びVBが【実行中】のまま固まってしまいますよね?

この場合「タスクマネージャ」を使って強制終了しています。
当然エクセルもVBもタスクから消滅してしまいます。
ファイルを保存していない時にこの状態になるとかなりブルーです。

作成途中のプログラムを残せるようなプログラムのみ終了させる方法
または
無限ループ内に「ループから強制的に抜け出すようなアクション」の埋め込み方法(または以下の意味は解りますかね…(汗))
等、ありましたら回答よろしくお願いします。

それともこのような状態になったら「ソースを作ったあなたが悪い!最終保存以降の編集内容はあきらめよ」と言うことなんでしょうか?

ちなみに論点はForNext等への変更ではなく
あくまで「誤って表記してしまった無限ループからの脱出」です
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

「ESC」キーを押せばプログラムは終了すると思います。

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

回答ありがとうございます!
これです!!!
「ESC」!一発で解決しました!!

15年前にN88-BASIC を使っていた頃(PC-88の)キーボードを思い出せば左上[STOP]
から、左上を疑うべきでしたっけ…あれ?STOPは右上でしたっけ…?
とにかく助かりました。ありがとうございました。

お礼日時:2002/02/14 16:42

実行する際、ホンモノじゃなくてコピーを作成して使う、とか…

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

回答ありがとうございます。
No4のお礼の後で恐縮です。
実行する際、コピーを作る手間は…「あらかじめ保存しておけ!」ですよね…

お礼日時:2002/02/14 16:45

WinNT(or2K)で開発すればいいんじゃないですか。


そうすれば、タスクマネージャで死んだアプリを制御できます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
開発環境はWindows2000でした。こちらのミスです。
タスクマネージャが起動する98って(大汗)失礼しました。

お礼日時:2002/02/14 16:47

私は、VB環境しかつかったことが無く、Excel97などのVBA環境は使ったことがありませんので、回答になるか自信がありませんが、参考になれば。



VBであれば、「ctrl」キーと「break」キーを押すことで、VB上で実行中のプログラムを中断することができます。

無限ループ中でも中断してくれたと思います。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
今年に入りVBを学習(と言ってもVBAのみですけど)しつつソース作りです。
N88-BASICは触れていたおかげでほとんど不自由はしていません。

No4から若い数字方向へのレスで恐縮ですがCtrl+Breakでも停止しました。
ありがとうございます。

お礼日時:2002/02/14 16:52

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報