- ベストアンサー
for loop の処理が途中でプログラムを終えてもつづいてしまうのをやめさせるには?
お世話になります。 for a = 1 to 10000 ~~処理~~ now = Timy While Timy < now + 2 DoEvents Wend loop ~~ とコーディングしてるのですが 途中でプログラムを終わらしても コンピューターの方でプログラムが続いてるみたいなのですが終わらすにはどうすればよいでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 コマンドボタンを1つつくって Dim a As Single Private Sub Command1_Click() For a = 1 To 1000000 If Command1 = True Then Exit For Next a Command1.Caption = "終了" Unload Me End Sub もう少したりないかな。
その他の回答 (4)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>エクスプローラーの右上のバツボタンを押すと >for loopが終わるようにしたいんです。 多分、忙しくてなかなか終われないだけだと思います。 >バツボタンが押された とかは、普通イベントで取得するのだと思いますが、 プログラム自体が、忙しすぎるとそれができません。 ×ボタンが押された時、は終了手続きが自動で行われる(はず)なので、特別になにかをする(その上で何かの終了手続きをするのでなく単に終了するのが目的なら)必要はありません。 DoEventsもあることだし、その内終了してくれると思います。
お礼
あぁ、そうなんですか。 以前、単に×ボタンをおしただけだと for loopが終わらないとおしえてもらったのですが・・・ どうやら勘違いだったようですね。 ありがとうございます。
- fortranxp
- ベストアンサー率26% (181/684)
1.for nextのとき Exit For 2.Do Loop のとき Exit Do たとえば For a=1 to 10000 if a=1000 then Exit For Next a これで a=1000のときループを終了します。
補足
ありがとうございます。 エクスプローラーの右上のバツボタンを押すと for loopが終わるようにしたいんです。 For a=1 to 10000 if バツボタンが押された then Exit For Next a みたいな感じにしたいんですけど バツボタンを押されたってどう書けばいいんでしょう?
- t_shadowback
- ベストアンサー率54% (56/103)
#1です。 うぬ? Breakは、キーの事です。Ctrlキー+Pauseキーの事を言ったのですが。うまく伝わらなかった様で。 デバッグ途中で、このCtrlキー+Pauseキーを押すと、強制終了するので。 そして、本題。 と、いう事は、先のロジックは、For~Nextになってるのですね。 で、このロジックから抜けたいのですか?それなら、 Exit For を、ループするロジック内に、条件文などと一緒に書いてあげれば、Forループを脱出しますよね。 それとも、While文の所だけ抜け出れば良いのかしら。 それでしたら、While~Wendを、Do While~Loopに書き換えて、条件文でExit Doすれば、抜けますよね。 そういう事でなく?
補足
あぁ、なるほど! キーだったんですね。 気づきませんでした・・汗汗
- t_shadowback
- ベストアンサー率54% (56/103)
1. For文に対応する、Nextステートメントはどこにありますか? 2. Loopステートメントに対応する、Do文はどこにありますか? 何か、根本的に間違ってるような。 因みに、プログラムの繰り返しを強制終了するには、Break(Ctrl+Pause)で止まります。
補足
loop じゃなくて Nextでした。 Private Sub Command2_Click() Break (Ctrl + Pause) End Sub とくみこんでみたのですが subまたはfunctionが定義されていませんとでて エラーがでてしまうのですが どうくみこめばよろしいでしょうか。
お礼
わざわざありがとうございます。 いろいろお世話になりました。