Private Type BrowseInfo
hWndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
szTitle As String
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" _
(lpbi As BrowseInfo) As Long
Private Function ShowBrowseForFolder() As String
Dim lpIDList As Long
Dim sBuffer As String
Dim tBrowseInfo As BrowseInfo
With tBrowseInfo
.hWndOwner = FindWindow("XLMAIN", vbNullString)
.szTitle = "Select a folder:"
.ulFlags = &H3 'BIF_RETURNONLYFSDIRS(&H1) + BIF_DONTGOBELOWDOMAIN(&H2)
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If lpIDList > 0 Then
sBuffer = String(260, 0)
Call SHGetPathFromIDList(lpIDList, sBuffer)
ShowBrowseForFolder = Left(sBuffer, InStr(sBuffer, Chr(0)) - 1) & "\"
End If
End Function