回答編集履歴
1
イベントの動作について補足。
test
CHANGED
@@ -10,17 +10,25 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
ListBoxなどには、[MouseDown、MouseUp イベント](https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mousedown-mouseup-events)があ
|
13
|
+
ListBoxなどには、[MouseDown、MouseUp イベント](https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/mousedown-mouseup-events)があります。
|
14
|
+
|
14
|
-
|
15
|
+
このイベントはドラッグ開始点がそのコントロール上であれば、コントロール外でボタンを放したとしてもその時点でMouseUpイベントが発生します。
|
16
|
+
|
15
|
-
|
17
|
+
そのため、これでマウスのボタンが放されたタイミングも捕捉できます。
|
16
|
-
|
18
|
+
|
17
|
-
マウスの位置
|
19
|
+
もう一つ必要な情報のマウスの位置ですが、こちらはMouse関連のイベントだけでは取得がちょっと難しいです。
|
18
|
-
|
20
|
+
|
19
|
-
イベントの引数のX、Yは相対位置になるので、絶対位置への変換&画面上への座標系の変換が必要になります。
|
21
|
+
イベントの引数のX、Yはありますが、これら相対位置になるので、絶対位置への変換&画面上への座標系の変換が必要になります。
|
22
|
+
|
23
|
+
|
24
|
+
|
20
|
-
|
25
|
+
とりあえず最低限必要そうな部品は以上になります。
|
21
|
-
|
22
|
-
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
23
|
-
こ
|
31
|
+
上記のことを踏まえて私が適当に実装してみたのが以下のコードになります。
|
24
32
|
|
25
33
|
|
26
34
|
|
@@ -227,3 +235,7 @@
|
|
227
235
|
End Function
|
228
236
|
|
229
237
|
```
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
一部挙動が微妙なところはありますが、恐らくイメージに近いものだと思われます。
|