Hola, hasta lo que yo se no puede hacerse, lo único que se me ocurre es que añadas un List1 (Listbox) para sustituir el File1 ¿ COMO ?
Muy fácil, el File1 debes mantenerlo pero oculto, con el Visible = False, y entonces dejar el siguiente código, te marco en Rojo lo que he añadido al tuyo.
Private Sub Dir1_Change()
File1.Path = Dir1.Path
PasarAlList
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Código vb:
Ver originalPrivate Sub PasarAlList()
Dim n As Integer
List1.Clear
For n = 0 To File1.ListCount -1
List1.AddItem SinExtension(File1.List(n))
Next
End Sub
Private Function SinExtension(Nombre As String)
Dim Punto As Integer
Punto = InStrRev(Nombre, ".")
If Punto > 0 Then
SinExtension = Left$(Nombre, Punto - 1)
Else
SinExtension = Nombre
End If
End Function
No es mas que una idea, pero algo es algo.
Saludos