• ベストアンサー

Do Loopをキーボードで抜けるには

エクセルVBAでDo Loopを使って繰り返し表示するプログラムを組んでいます。 このループを終わらせるにはEscを押せば強制終了しましたがキーボードの任意のキーで抜けるもしくは終了させる方法を教えてください。 エクセルのバージョンは「2007」です。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.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

homma
質問者

お礼

回答ありがとうございました。 返信が送れまましたことをお詫びします。 大変参考になりました。

その他の回答 (1)

  • utun01
  • ベストアンサー率40% (110/270)
回答No.1

loop内でキーイベントを監視するようにして、それをキーに抜けるような感じにすればいけるのではないでしょうか。 キーイベントについては調べれば色々出てくると思うので、一つURLを張るだけにしておきます。 http://www.happy2-island.com/excelsmile/smile04/capter00301.shtml

homma
質問者

補足

回答ありがとうございました。 下記のプログラムでスペースキーを押して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

関連するQ&A