I figured out a way to achieve this. As far as I can tell, it can only be done using a treeview control. You may have to right click your toolbox to find and add it. It will be there under "additional controls" or something like that. You'll need two things aside from the control.
In the UserForm_Initialize
sub you will need the following line of code to enable drag and drop: TreeView1.OLEDropMode = ccOLEDropManual
:
UserForm_Initialize()
TreeView1.OLEDropMode = ccOLEDropManual
End Sub
Then you will need the Private Sub TreeView1_OLEDragDrop
event. I've omitted all the parameters to save space. They should be easy enough to find. In that sub simply declare a string, maybe strPath
or something like that to hold the file name and path and set strPath = Data.Files(1)
and that will get the file name and path of a file that the user drags to the TreeView control. This assumes that the user only drags one file at a time, but as far as I can tell this should be something that can be done dragging multiple files if you experiment with it.
Private Sub TreeView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
StrPath = Data.Files(1)
End Sub
Edit: You will also need to add a reference to Microsoft Windows Common Controls 6.0
I've also added example code.