マウスの位置やボタンの状態を取得する

シート上でマウス位置を取得するには、透明なラベルを配置し行うことができますが、クリックされると透明でなくなるのでうまくいきません。それでよければ問題ないのですが、ユーザーフォームの方がうまくいくのでこちらで試してみます。

マウスが移動された時の状態を取得するには、MouseMoveイベントを使用します。

マウスが押された時の状態を取得するには、MouseDownイベントを使用します。
Buttonの設定値 'Shiftの設定値


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

実行画面

「開始」ボタンをクリックするとユーザーフォームが開きます。
ユーザーフォーム上でマウスを動かしたり、クリックすると、位置の座標と状態がシート上に表示されます。
マウスの状態を調べる


実行VBAコード

Option Explicit

'開始ボタン
Private Sub CommandButton1_Click()
    'ユーザーフォームを開く
    UserForm1.Show
End Sub
Option Explicit

'マウスが押された時のイベント
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim s As String
    
    'Buttonを判定
    If Button = 1 Then
        Range("C8") = "左ボタンが押されました"
    ElseIf Button = 2 Then
        Range("C8") = "右ボタンが押されました"
    ElseIf Button = 4 Then
        Range("C8") = "中央ボタンが押されました"
    End If
        
    'Shiftを判定
    Select Case Shift
        Case 1: s = "Shiftキーが押されました"
        Case 2: s = "Ctrlキーが押されました"
        Case 3: s = "ShiftキーとCtrlキー同時に押されました"
        Case 4: s = "Altキーが押されました"
        Case 5: s = "AltキーとShiftキーが同時に押されました"
        Case 6: s = "AltキーとCtrlキーが同時に押されました"
        Case 7: s = "AltキーとShiftキーとCtrlキーが同時に押されました"
        Case Else: s = ""
    End Select
    Range("C9") = s
End Sub

'マウスが移動した時のイベント
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Range("C6") = X
    Range("C7") = Y
End Sub



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved