This article from Ovidiu Crisan shows four different methods of displaying the ‘Find Files’ dialog from within a Visual Basic Program.

If you want to use ‘Find Files’ standard dialog, in your programs you can choose between the following four methods.
- Using DDE: it’s needed an label control, even invisible.
Private Sub Command1_Click()
With Label1
.LinkTopic = "Folders|AppProperties"
.LinkMode = vbLinkManual
.LinkExecute "[OpenFindFile(,)]"
End With
End Sub
Private Sub Form_Load()
Label1.Visible = False
Command1.Caption = "Find File (1)..."
Me.Caption = "Find File (1)"
End Sub
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
'
Private Const VK_LWIN = &H5B
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_APPS = &H5D
'
Private Sub Command1_Click()
Call keybd_event(VK_LWIN, 0, 0, 0)
Call keybd_event(&H46, 0, 0, 0) 'F
Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub
'
Private Sub Form_Load()
Command1.Caption = "Find File (2)..."
Me.Caption = "Find File (2)"
End Sub
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10
Private Sub Command1_Click()
Call ShellExecute(Me.hwnd, _
"find", _
Dir1.Path, _
vbNullString, _
vbNullString, _
SW_SHOWNORMAL)
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
Command1.Caption = "Find File (3)..."
End Sub
Private Declare Function SHFindFiles Lib "Shell32" _
Alias "#90" _
(pidlRoot As Long, pidlSavedSearch As Long) As Long
Private Declare Function SHSimpleIDListFromPath Lib _
"Shell32" Alias "#162" _
(ByVal lpszPath As String) As Long
'
Private Sub Command1_Click()
Dim l As Long
l = SHSimpleIDListFromPath(Dir1.Path)
SHFindFiles ByVal l, ByVal 0
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub Form_Load()
Command1.Caption = "Find File (4)..."
Me.Caption = "Find File (4)"
End Sub
For the last two methods you need to add a DriveListBox and a DirListBox
control. With this methods you can give the start path for searching.
Download Zipped Project File (12k)