mmm puedes usar el common dialog para realizar tal acto... (OJO no entiendo como deseas listar los archivos)
P.D.: hasta donde yo he visto ese cuadro de examinar no muestra archivosojo hasta donde yo se. para mostrar archivos y mostrar la ruta completa del archivo seleccionado por un cuadro de examinar es mejor usar el common dialog.
---Editado.--- Source Common Dialog --- y ya.
Cuadro de diálogo Abrir archivo ( Función GetOpenFileName )
Option Explicit
' Función Api GetOpenFileName _
para abrir el cuadro de diálogo seleccionar archivo
Private Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" ( _
pOpenfilename As OPENFILENAME) As Long
' Estructure de datos _
OPENFILENAME para usar con GetOpenFileName
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Sub Command1_Click()
Dim OFName As OPENFILENAME
With OFName
.lStructSize = Len(OFName)
'Establecemos el hwnd del form
.hwndOwner = Me.hWnd
'Establecemos el numero de instancia de la aplicacion
.hInstance = App.hInstance
'Establecemos el filtro de archivos a mostrar, _
en este caso txt y todos los ficheros
.lpstrFilter = "Archivos de texto (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + _
"Todos los archivos (*.*)" + Chr$(0) + "*.*" + Chr$(0)
'Acá debemos crear un buffer para el archivo
.lpstrFile = Space$(254)
'Establecemos el tamaño maximo retornado
.nMaxFile = 255
'Creamos un buffer para el titulo del archivo
.lpstrFileTitle = Space$(254)
'Establecemos el tamaño maximo retornado
.nMaxFileTitle = 255
'Establecemos el directorio por defecto que mostrará el dialogo
.lpstrInitialDir = "C:\Windows"
'El title
.lpstrTitle = "Abrir archivos"
'Flasgs que detereminan caracteristicas del dialogo
.flags = 0
End With
'Abrimos el cuadro de diálogo pasándole _
a GetOpenFileName la estructura anterior
If GetOpenFileName(OFName) Then
MsgBox "Seleccionó: " + Trim$(OFName.lpstrFile)
Else
MsgBox "Se canceló"
End If
End Sub
Private Sub Form_Load()
Command1.Caption = "Abrir CommonDialog"
End Sub
Cuadro de diálogo Guardar como ( Función GetSaveFileName )
Option Explicit
'Función Api GetSaveFileName que _
llama al cuadro guardar como de windows
Private Declare Function GetSaveFileName Lib "comdlg32.dll" _
Alias "GetSaveFileNameA" ( _
pOpenfilename As OPENFILENAME) As Long
' UDT OPENFILENAME para el api GetSaveFileName
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
' Variable para utilizar la estructura de la función Api
Dim OFName As OPENFILENAME
Private Function GuardarComo() As String
With OFName
'Establecmos el tamaño de la extructura
.lStructSize = Len(OFName)
'Establecmos el hwnd de la aplicación, es decir _
la del form que llama al diálogo
.hwndOwner = Me.hWnd
'Acá la instancia
.hInstance = App.hInstance
'Establecemos los filtros de extension que mostrá
'.lpstrFilter = "Archivos de texto (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + _
"Todos los archivos (*.*)" + Chr$(0) + "*.*" + Chr$(0)
'Le pasamos un buffer al nombre de archivo
.lpstrFile = Space$(254)
'Debemos establecer el maximo de caracteres del buffer anterior
.nMaxFile = 255
'Lo mismo pero para el título del diálogo de windows
.lpstrFileTitle = Space$(254)
'Debemos establecer el maximo de caracteres del buffer
.nMaxFileTitle = 255
'Establecemos el drectorio inicial que mostrará el diálogo
.lpstrInitialDir = "C:\"
'Establecemos el titulo
.lpstrTitle = "Guardar archivo como"
'Los flags
.flags = 0
End With
'Mostramos el dialogo pasandole la estructura a la función Api GetSaveFileName
If GetSaveFileName(OFName) Then
GuardarComo = Trim$(Replace(OFName.lpstrFile, Chr(0), ""))
Else
GuardarComo = ""
End If
End Function
Private Sub Command1_Click()
Dim sFile As String
'sFile almacenará el path completo que nos interesa
sFile = GuardarComo
'Comprobamos que no sea una cadena vacia
If sFile <> "" Then
MsgBox "Ruta elegida " + sFile
Else
MsgBox "Cancelar"
End If
End Sub
Private Sub Form_Load()
Command1.Caption = "Abrir CommonDialog"
End Sub
Fuente:
http://www.recursosvisualbasic.com.ar/htm/listado-api/api-27.htm