Menuへ
キー入力を検出する

ゲームソフトを作成する場合、よく矢印キー入力を調べます。
矢印キーでUFOが上下左右に動くなどです。
これを実行するのに、Windows APIのGetAsyncKeyStateをよく使用します。
早速作ってみます。





実行コード

矢印キーでセルのカーソル位置が移動します。
高速で移動しますので注意してください。


Option Explicit

Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

Private Sub MyKeyin(lrow As Long, lcol As Long)
    Dim lkey As Long
    
    Do Until GetAsyncKeyState(27) <> 0
    
        If GetAsyncKeyState(vbKeyUp) <> 0 Then
            lrow = lrow - 1
            If lrow < 1 Then lrow = 1
        ElseIf GetAsyncKeyState(vbKeyDown) <> 0 Then
            lrow = lrow + 1
        ElseIf GetAsyncKeyState(vbKeyLeft) <> 0 Then
            lcol = lcol - 1
            If lcol < 1 Then lcol = 1
        ElseIf GetAsyncKeyState(vbKeyRight) <> 0 Then
            lcol = lcol + 1
        End If
        Cells(lrow, lcol).Select
        DoEvents
    Loop
End Sub

Private Sub CommandButton1_Click()
    MyKeyin 10, 10
End Sub


Topへ