- ベストアンサー
Do Loopをキーボードで抜けるには
エクセルVBAでDo Loopを使って繰り返し表示するプログラムを組んでいます。 このループを終わらせるにはEscを押せば強制終了しましたがキーボードの任意のキーで抜けるもしくは終了させる方法を教えてください。 エクセルのバージョンは「2007」です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
横から失礼します。 下記の応用でいけると思います。 なお、Application.Onkeyでも可能かと思って試したところうまくいっていません。 SleepとかDoEventsの意味は、http://okwave.jp/qa/q7420891.htmlをご参照下さい。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long Sub test() Do Range("A1").Value = Range("A1").Value + 1 If GetAsyncKeyState(32) Then Exit Do Sleep 10 DoEvents Loop End Sub
その他の回答 (1)
- utun01
- ベストアンサー率40% (110/270)
loop内でキーイベントを監視するようにして、それをキーに抜けるような感じにすればいけるのではないでしょうか。 キーイベントについては調べれば色々出てくると思うので、一つURLを張るだけにしておきます。 http://www.happy2-island.com/excelsmile/smile04/capter00301.shtml
補足
回答ありがとうございました。 下記のプログラムでスペースキーを押してDo Loopから抜けるにはどうすればいいか教えてもらえないでしょうか。 Sub time() Dim GetH Dim GetM Dim GetS If GetAsyncKeyState(32) <> 1 Then Do While GetH <= "23" GetH = Hour(Now()) GetM = Minute(Now()) GetS = Second(Now()) Cells(2, 2) = GetH Cells(2, 3) = GetM Cells(2, 4) = GetS Loop End If End Sub
お礼
回答ありがとうございました。 返信が送れまましたことをお詫びします。 大変参考になりました。