1-38 マウスポインタの位置によってフォームの色を変更するユーザーフォーム 2021.11.16
次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」
MouseMoveイベントは、フォーム上でマウスが動いた場合に発生します。(マウスの動きがあまりに早い場合は、検知できないこともあります)
引数は、MouseDownやMouseUpと同じです。
サンプルコード
マウスポインタがフォームの右側移ると、背景が赤くなり、左側に移ると、背景はグレーになる
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Me.InsideWidth / 2 < X Then Me.BackColor = &HFF& Else Me.BackColor = &H8000000F 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