- 締切済み
VBAのWAIT命令について
VBAのWAIT命令についてですが、1秒以下の設定は出来ないのでしょうか。EXCEL2003で作業しています。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- freetaka
- ベストアンサー率53% (106/197)
次に質問したい事ができた場合は また新たに質問しなおしたほうが いろいろな人の目にとまり 回答がついて問題解決に繋がるかもしれません 一度この質問は終了してしまったほうがよろしいかと思います 以上 VBAがんばってください
- freetaka
- ベストアンサー率53% (106/197)
すいません 0.5秒だと500ですね^-^; 参考になるかわかりませんが ESCキーが押されるまで処理を繰り返すもの載せておきます Private Declare Sub Sleep Lib "KERNEL32.dll" _ (ByVal dwMilliseconds As Long) Sub Sleep_Sample() Application.EnableCancelKey = xlErrorHandler On Error GoTo Esc_EXIT ' ESCキーが押されるまで繰り返す処理を記述 Do 'ここから 'ここまでの間に記述 ' 0.5秒WAITをかける DoEvents Sleep 500 Loop '押された後の処理 Esc_EXIT: Application.EnableCancelKey = xlInterrupt On Error GoTo 0 Exit Sub End Sub
お礼
>0.5秒だと500ですね 実験で気がついたのでokです。 >ESCキーが押されるまで処理を繰り返すもの載せておきます いやー ばっちりです。 大助かりです。まだ何か出そうなので、懲りずにお教え下さい。
- freetaka
- ベストアンサー率53% (106/197)
APIを利用しミリ秒単位でWAITをかけれます 宣言の仕方 Private Declare Sub Sleep Lib "KERNEL32.dll" _ (ByVal dwMilliseconds As Long) 0.5秒WAITであれば Sleep 50 といった使い方です
お礼
ありがとうございます。非常に助かりました。 それにWAITよりSleepの方が動作が安定しますので 使わせていたきます。感謝。
補足
組み込んでみた結果、時間は安定したのですが、処理中にescキーで終了させると通らないロジックが出てきて、後の処理に支障をきたしてしまいます。 おそらく、dllを呼び出しているので中断後の処理が保証されないのではないかと思います。なにか回避できる方法はないものでしょうか。
お礼
そうですね。ありがとうございます。 慣れないもので、ここでのルールみたいなものさえ よくわかってませんでした。 一旦締めます。 いろいろ、どうも。