キー入力の有無を調べる : Access

Access VBAで目的のキーがおされているかどうか調査します。

ゲームソフトなどでよく使う方法で、ループでポーリングします。

検出にはWindowsAPIのGetAsyncKeyStateを使用します。
ここでは、矢印キーが押されているかどうか調べ、ESCキーが押されれば終了します。


BackHome BackTips Backメニュー

下記の流れになります。
1)Accessフォーム1のタイトルに「stat」と表示
2)ループでキー入力を調べます。
  ・ESCキーでループから抜けます
  ・上矢印キー(vbKeyUp)で「上」と表示します。
  ・下矢印キー(vbKeyUp)で「下」と表示します。
  ・左矢印キー(vbKeyLeft)で「左」と表示します。
  ・右矢印キー(vbKeyRight)で「右」と表示します。
  ・キー入力がなければ「なし」と表示します。
3)フォーム1のタイトルに「end」と表示

■ Access VBA 実行コード
Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

Public Sub MyKeyin()
    Dim lkey As Long
    Forms!フォーム1.Caption = "start"
    Do Until GetAsyncKeyState(27) <> 0
        If GetAsyncKeyState(vbKeyUp) <> 0 Then
            Forms!フォーム1.Caption = "上"
        ElseIf GetAsyncKeyState(vbKeyDown) <> 0 Then
            Forms!フォーム1.Caption = "下"
        ElseIf GetAsyncKeyState(vbKeyLeft) <> 0 Then
            Forms!フォーム1.Caption = "左"
        ElseIf GetAsyncKeyState(vbKeyRight) <> 0 Then
            Forms!フォーム1.Caption = "右"
        Else
            Forms!フォーム1.Caption = "なし"
        End If

        DoEvents
    Loop
    Forms!フォーム1.Caption = "end"
End Sub


BackHome BackTips Backメニュー

Copyright(C) FeedSoft