Hacer Drag & Drop en un formulario

Trucos VBA

En un formulario (Form), añadimos un control PictureBox (Picture1) con una imagen cualquiera, y escribimos el siguiente código:

  Private DragX As Integer
  Private DragY As Integer
  Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
     Source.Move (X - DragX), (Y - DragY)
  End Sub
  Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     'Si el boton del raton es el derecho, no hacemos nada
     If Button = 2 Then Exit Sub
     Picture1.Drag 1
     DragX = X
     DragY = Y
  End Sub
  Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
     Picture1.Drag 2
  End Sub
Publicado en VBA