• ベストアンサー

作業をとめる??

 VBでfor をしているとき、一定時間(1~2秒くらい)なにもさせない方法を教えてください ちなみに for i=0 to 1000000 next i とかいろいろしましたがわかりません

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 DoEventsを使用する方法をもう1つ。 Dim StartTime As Single '開始時間(秒) Dim WaitSec As Single '待ち時間(秒) WaitSec = 10 StartTime = Timer Do While Timer < StartTime + WaitSec   DoEvents Loop Timer関数は午前零時からの経過秒数を返す関数で、Singleで返すので2.5秒などの小数も出来ます。 ただし、日をまたぐとだめですが。 では。

kennta111
質問者

お礼

皆様  回答 ありがとうございます

その他の回答 (2)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

本当に何も(画面の描画も)しなくていいのであれば、 WindowsAPIのSleep()を使うのが簡単です。 ただ単に、引数に待ち時間をいれて呼び出すだけです。 そうではなく、入力待ちのような、イベントが発生するのを待つのであれば、Timerコントロールを使うのが楽です。 それだと、別のイベントプロシージャに処理がうつってしまうのでいやだというのなら、DoEventsを使う方法もあります。 '10秒間ループが終了しません t = Now Do While (Now - t) * 10000 < 10 DoEvents Loop

  • hardy50
  • ベストアンサー率29% (221/746)
回答No.1

Timerコントロールに処理をとばして2秒経ったら戻してみてはどうでしょう?