需要先声明一下api
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpbrowseinfo As browseinfo) As Long
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszpath As String) As Long
Type browseinfo
howen As Long
pidlroot As Long
pszdisplayname As String
lpsztitle As String
ulflags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Sub path1()
Dim bi As browseinfo
Dim pidl, rtn, path As String
Dim pos As Integer
With bi
.lpsztitle = "选择目录"
End With
pidl = SHBrowseForFolder(bi)
path = Space(512)
rtn = SHGetPathFromIDList(ByVal pidl, ByVal path)
If rtn <> "" Then
pos = InStr(path, Chr(0))
End If
p1 = Left(path, pos - 1)
End Sub