• ベストアンサー

VBAで3秒だけ時間を止めたい

アクセス2007です。 VBAで3秒だけ時間を止めたいのですが 過去ログを検索してもよくわかりませんでした。 http://okwave.jp/qa/q4984098.html こちらを見るとAPIとの事ですが VBAだけで出来るコードをご教示いただけないでしょうか?アドバイスよろしくお願いします。

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

  • ベストアンサー
  • szk9998
  • ベストアンサー率45% (1026/2241)
回答No.3

VBAだけでできるコードの一例ですが、 Timer関数で取得した数値に「3秒」が足されるまでLoopする という手がありますね。 こんな感じで。 Dim time As Single Dim starttime As Single time = 3    '経過後にループを抜ける時間(秒) starttime = Timer 'Timer関数で開始時刻を取得 Do Until Timer > starttime + time  '現在時刻がtime秒経過するまでループ DoEvents Loop ~~以降の処理するプログラム~~

lokijuh
質問者

お礼

お礼が遅くなってしまいもうしわ小杉ございません。 私の要望通りVBAだけのコードを教えていただきありがとうございます。 また機会があったらご教授宜しくお願いいたします。

その他の回答 (2)

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.2

VBAだけだと工夫が必要です。下記が参考になるかと思います。 http://yamav102.cocolog-nifty.com/blog/2011/11/access-vbawait-.html APIを使えば簡単です。 下記を定義しておいて Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 3秒止めたい箇所に下記を挿入する。 Sleep 3000

lokijuh
質問者

お礼

どちらでもできました。 でもAPIの方が簡単ですね。ありがとうございました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

なぜ3秒待たせたいのか?のほうが気になりますね。 APIがイヤなら、Now()で現在時刻を取得して3秒経過するまで空回りさせるとか。 (PCはフリーズ状態になりますが)

lokijuh
質問者

お礼

APIは難しそうなイメージがありました。、調べてみます。ありがとうございました。

関連するQ&A

専門家に質問してみよう