回答編集履歴

1

イベントの動作について補足。

2019/02/14 14:14

投稿

imihito
imihito

スコア2166

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
+ 一部挙動が微妙なところはありますが、恐らくイメージに近いものだと思われます。