トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 1-37 マウスが押された位置を表示する

1-37 マウスが押された位置を表示するユーザーフォーム   2021.11.16

次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」

目次  前頁   次頁  索引

MouseDownイベントは、フォーム上でマウスボタンを押した時に発生します。
同じような役割を持ったものにClickイベントがあります。
MouseDownイベントとClickイベントとの違いは、引数有無です。
Clickイベントは、引数がないため、左クリックされた場合のみイベントは発生しますが、MouseDownイベントは、引数が4つあり、押されたボタンの種類、押されたフォーム上のポインタ位置、[Shift]キー等の状態を取得できます。
なお、それらの引数は、MouseMoveイベント、MouseUpイベントと共通です。


サンプルコード

フォーム上で右クリックした場合に、マウスの押された位置を表示する

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Button = 2 Then
        MsgBox "水平位置:" & X & "ポイント" & vbCrLf & "垂直位置:" & Y & "ポイント"
    End If
End Sub

◇Button
引数Buttonはマウスの押されたボタンを返します。

引数 Button

数値

マウス左ボタン

1

マウス右ボタン

2

マウス中央ボタン

4


◇Shift
引数 Shiftは、キーが押されている時の[Shift][Ctrl][Alt]キーの状態を返します。
[Shift][Ctrl][Alt]キーにはそれぞれ整数が設定されており、それら2つ以上を押した場合は、それらの整数を加算した数値を返します。

引数 Shift

数値

3つのキーのいずれも押されていない

0

[Shift]

1

[Ctrl]

2

[Shift]+[Ctrl]

3

[Alt]

4

[Shift]+[Alt]

5

[Ctrl]+[Alt]

6

[Shift]+[Ctrl]+[Alt]

7


◇ X / Y
引数Xと引数Yはフォーム上のボタンが押された位置をポイント単位で返します。返す型はSingle(単精度浮動小数点型)です。


書籍紹介140以上のサンプルファイル付き!

知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。

■ 購入:amazon

ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.