• ベストアンサー

for loop の処理が途中でプログラムを終えてもつづいてしまうのをやめさせるには?

お世話になります。 for a = 1 to 10000 ~~処理~~ now = Timy While Timy < now + 2 DoEvents Wend loop ~~ とコーディングしてるのですが 途中でプログラムを終わらしても コンピューターの方でプログラムが続いてるみたいなのですが終わらすにはどうすればよいでしょうか?

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

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.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 もう少したりないかな。

mokukun
質問者

お礼

わざわざありがとうございます。 いろいろお世話になりました。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>エクスプローラーの右上のバツボタンを押すと >for loopが終わるようにしたいんです。 多分、忙しくてなかなか終われないだけだと思います。 >バツボタンが押された とかは、普通イベントで取得するのだと思いますが、 プログラム自体が、忙しすぎるとそれができません。 ×ボタンが押された時、は終了手続きが自動で行われる(はず)なので、特別になにかをする(その上で何かの終了手続きをするのでなく単に終了するのが目的なら)必要はありません。 DoEventsもあることだし、その内終了してくれると思います。

mokukun
質問者

お礼

あぁ、そうなんですか。 以前、単に×ボタンをおしただけだと for loopが終わらないとおしえてもらったのですが・・・ どうやら勘違いだったようですね。 ありがとうございます。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.3

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のときループを終了します。

mokukun
質問者

補足

ありがとうございます。 エクスプローラーの右上のバツボタンを押すと for loopが終わるようにしたいんです。 For a=1 to 10000 if バツボタンが押された then Exit For Next a みたいな感じにしたいんですけど バツボタンを押されたってどう書けばいいんでしょう?

回答No.2

#1です。 うぬ? Breakは、キーの事です。Ctrlキー+Pauseキーの事を言ったのですが。うまく伝わらなかった様で。 デバッグ途中で、このCtrlキー+Pauseキーを押すと、強制終了するので。 そして、本題。 と、いう事は、先のロジックは、For~Nextになってるのですね。 で、このロジックから抜けたいのですか?それなら、 Exit For を、ループするロジック内に、条件文などと一緒に書いてあげれば、Forループを脱出しますよね。 それとも、While文の所だけ抜け出れば良いのかしら。 それでしたら、While~Wendを、Do While~Loopに書き換えて、条件文でExit Doすれば、抜けますよね。 そういう事でなく?

mokukun
質問者

補足

あぁ、なるほど! キーだったんですね。 気づきませんでした・・汗汗

回答No.1

1. For文に対応する、Nextステートメントはどこにありますか? 2. Loopステートメントに対応する、Do文はどこにありますか? 何か、根本的に間違ってるような。 因みに、プログラムの繰り返しを強制終了するには、Break(Ctrl+Pause)で止まります。

mokukun
質問者

補足

loop じゃなくて Nextでした。 Private Sub Command2_Click() Break (Ctrl + Pause) End Sub とくみこんでみたのですが subまたはfunctionが定義されていませんとでて エラーがでてしまうのですが どうくみこめばよろしいでしょうか。

関連するQ&A