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

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

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

マウスが押された時の状態を取得するには、MouseDownイベントを使用します。
Buttonの設定値
  • 1 : 左ボタンが押された
  • 2 : 右ボタンが押された
  • 3 : 中央ボタンが押された
'Shiftの設定値
  • 1 : Shiftキーが押された
  • 2 : Ctrlキーが押された
  • 3 : ShiftキーとCtrlキー同時に押された
  • 4 : Altキーが押された
  • 5 : AltキーとShiftキーが同時に押された
  • 6 : AltキーとCtrlキーが同時に押された
  • 7 : AltキーとShiftキーとCtrlキーが同時に押された
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