Drag picture
can anyone tell me how to make the picture box in the excel form be
dragable by using VBA programming? |
Drag picture
On Jan 27, 8:41 pm, wrote:
can anyone tell me how to make the picture box in the excel form be dragable by using VBA programming? youu, I'm not sure you can do that because re-positioning and/or resizing a form require it to be in edit mode. You could collect Left and Top positions of the image object from the user to adjust it's position on the form. But that would be clumsy. Whenever anyone asks about these more exotic kinds of VBA functionality, my first question is, "What value are you trying to provide to the user?" Followed by, "Ts what you are trying to do value-added from your and the user's perspective? And then step back and see if you could deliver essentially the same value from an alternative solution strategy or else try to persuade the customer to reduce his requirements. (Time is money.) Good Luck. SteveM P.S. to youu and anybody else who reads this thread, google "Occams Razor". Read a few things about that and take note... |
Drag picture
On Jan 28, 9:56*am, SteveM wrote:
On Jan 27, 8:41 pm, wrote: can anyone tell me how to make the picture box in the excel form be dragable by using VBA programming? youu, I'm not sure you can do that because re-positioning and/or resizing a form require it to be in edit mode. *You could collect Left and Top positions of the image object from the user to adjust it's position on the form. *But that would be clumsy. Whenever anyone asks about these more exotic kinds of VBA functionality, my first question is, "What value are you trying to provide to the user?" *Followed by, "Ts what you are trying to do value-added from your and the user's perspective? *And then step back and see if you could deliver essentially the same value from an alternative solution strategy or else try to persuade the customer to reduce his requirements. *(Time is money.) Good Luck. SteveM P.S. to youu and anybody else who reads this thread, google "Occams Razor". *Read a few things about that and take note... thank you very much |
Drag picture
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 |
Drag picture
I'm not sure you can do that because re-positioning and/or resizing a
form require it to be in edit mode. You could collect Left and Top positions of the image object from the user to adjust it's position on the form. But that would be clumsy. See my response to the OP for a simple method to do what he asked. Rick |
Drag picture
Rick, Very nice, I will keep this one even though I may never use it. -- 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 |
Drag picture
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 |
Drag picture
Thank you very much! Appreciated that you solved my problem,thank you.
|
All times are GMT +1. The time now is 02:48 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com