コントロールをマウスで移動@Excel マクロ・VBA

フォーム上のコントロールをマウスで移動します。

以下では、フォーム上のテキストボックスを、
マウスの左クリックを押して移動させます。

MouseDown、MouseMove、MouseUpに処理を記述します。

MouseDownでは、左クリックの場合に、
クリックが押された場所を記録します。

MouseMoveでは、左クリックが押されている場合に、
テキストボックスの移動を行います。

MouseUpでは、MouseMoveと同じですが、
左クリックの場合に、テキストボックスの位置を移動します。



Dim startX As Single
Dim startY As Single

'テキストボックスクリック
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    '左クリック
    If Button = 1 Then
        'クリック位置を記録
        startX = X
        startY = Y
    End If

End Sub

'テキストボックスマウス移動
Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    '左クリック
    If Button = 1 Then
        'テキストボックスを移動
        Me.TextBox1.Left = Me.TextBox1.Left + X - startX
        Me.TextBox1.Top = Me.TextBox1.Top + Y - strartY
    End If

End Sub

''テキストボックスのクリックは放した時
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    
    '左クリック
    If Button = 1 Then
        'テキストボックスを移動
        Me.TextBox1.Left = Me.TextBox1.Left + X - startX
        Me.TextBox1.Top = Me.TextBox1.Top + Y - strartY
    End If

End Sub




Copyright (C) Excelマクロ・VBAのお勉強. All Rights Reserved.