マウスのクリックの有無を調べる : Access

前回Access VBAで目的のキーボードが押されたかどうか調査しましたが、今回はマウスがクリックされたかどうか検出します。

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

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


BackHome BackTips Backメニュー

下記の流れになります。
1)フォーム1のタイトルに「stat」と表示
2)ループでキー入力を調べます。
  ・ESCキーでループから抜けます
  ・左クリック(vbKeyLButton)で「左クリック」と表示します。
  ・右クリック(vbKeyRButton)で「右クリック」と表示します。
  ・キー入力がなければ「なし」と表示します。
3)ループを抜けるとフォーム1のタイトルに「end」と表示

■ Access VBA 実行コード

Option Compare Database
Option Explicit

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

Public Sub MyMouseClick()
    Dim lkey As Long
    Forms!フォーム1.Caption = "start"
    Do Until GetAsyncKeyState(27) <> 0
        If GetAsyncKeyState(vbKeyLButton) <> 0 Then
            Forms!フォーム1.Caption = "左クリック"
        ElseIf GetAsyncKeyState(vbKeyRButton) <> 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