マウスの位置やボタンの状態を取得する
シート上でマウス位置を取得するには、透明なラベルを配置し行うことができますが、クリックされると透明でなくなるのでうまくいきません。それでよければ問題ないのですが、ユーザーフォームの方がうまくいくのでこちらで試してみます。
マウスが移動された時の状態を取得するには、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