ListboxをはじめとするExcel標準で利用できるコントロールツール群ではD&Dに対応できないため、あえて外部ツール(ListView)を利用しているものと思います。
代案として、ListViewにDrop結果をリスト表示してみてはいかがでしょうか?
⇒参考サイト:エクセルの学校
以下、お試しで作成してみたコードです。
Private Sub UserForm_Activate()
With Me.ListView1
.OLEDragMode = ccOLEDragAutomatic
.OLEDropMode = ccOLEDropManual
.View = lvwReport
.LabelEdit = lvwManual
.HideSelection = False
.AllowColumnReorder = True
.FullRowSelect = True
.Gridlines = False
.ColumnHeaders.Clear
.ColumnHeaders.Add , "_List", "ファイル名", 300 '1列(非表示)
.HideColumnHeaders = True
End With
End Sub
Private Sub ListView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
On Error GoTo DropErr
For c = 1 To Data.Files.Count
Dim strFile As String
strFile = Mid(Data.Files(c), InStrRev(Data.Files(c), "\") + 1)
If UBound(Split(strFile, ".")) = 0 Then
'Folder
End If
Dim strPath As String
Me.ListView1.ListItems.Add.Text = strFile
Next
DropErr:
End Sub
Listboxとは見た目や挙動が若干異なりますが、設定次第では近づけることもできるかもしれません。
参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/30 20:18