Very nice,
Thank you!
I will keep this one even though I may never use it.
LOL
By the way, the procedure I posted is not restricted to ImageBox'es only;
you can use it with any control having those three Mouse events available.
For example, put a ListBox on the UserForm, copy/paste the code I posted
earlier, click Edit/Replace (or key in Ctrl+H) and replace all occurrence of
Image1 with ListBox1. Now, run the project and Shift+LeftMouseClick over the
ListBox and drag it around instead.
Rick
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)
"Rick Rothstein (MVP - VB)"
wrote in message
can anyone tell me how to make the picture box in the excel
form be dragable by using VBA programming?
You said "picture box", but I am going to assume you meant ImageBox. Place
an ImageBox (leave the default name of Image1) on the form. Copy/paste the
code below my signature into the UserForm's code window, run the project
and
press Shift+<LeftMouseButton to drag the ImageBox around the form.
Rick
Private OffsetX As Long, OffsetY As Long
Private Moving As Boolean
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 And Shift = 1 Then
OffsetX = X
OffsetY = Y
Moving = True
End If
End Sub
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Moving Then
With Image1
.Move .Left + X - OffsetX, .Top + Y - OffsetY
End With
End If
End Sub
Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
Moving = False
End Sub