API: BrowseFolder Dialog
Author(s)
Terry Kreft
(Q) Ok, I know how to use the GetOpenFileName api, but I want to just retrieve the Directory name. How do I call the Browse for Folder window from code?
(A) Paste the following code in a new module. Save the module with any name. Use the following example as an illustration on how to call the function.
Dim strFolderName as string
strFolderName = BrowseFolder("What Folder you want to select?")
Stephen Lebans has added functionality to open the browse folder at a specific place.
´************** Code Start **************
´This code was originally written by Terry Kreft.
´It is not to be altered or distributed,
´except as part of an application.
´You are free to use it in any application,
´provided the copyright notice is left unchanged.
´
´Code courtesy of
´Terry Kreft
Private Type BROWSEINFO
hOwner 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 Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
"SHGetPathFromIDListA" (ByVal pidl As Long, _
ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
"SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _
As Long
Private Const BIF_RETURNONLYFSDIRS = &H1
Public Function BrowseFolder(szDialogTitle As String) As String
Dim X As Long, bi As BROWSEINFO, dwIList As Long
Dim szPath As String, wPos As Integer
With bi
.hOwner = hWndAccessApp
.lpszTitle = szDialogTitle
.ulFlags = BIF_RETURNONLYFSDIRS
End With
dwIList = SHBrowseForFolder(bi)
szPath = Space$(512)
X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
If X Then
wPos = InStr(szPath, Chr(0))
BrowseFolder = Left$(szPath, wPos - 1)
Else
BrowseFolder = vbNullString
End If
End Function
´*********** Code End *****************
Online Aktualiesierung
ichhabeinefrage 07.08.2007 - 97 Hits - 1 Antwort
Datenbankauszug zu Excel
turandot 15.08.2007 - 101 Hits - 1 Antwort
Daten in Excel importieren (aus Access)
NochEinGast 05.12.2007 - 254 Hits - 2 Antworten
Excel: Tabellenblätter aus Dateien automatisch in eine einzige neue Datei kopieren
Cerrio 25.01.2008 - 157 Hits - 12 Antworten
Welche Datei startet Excel?
websurfer 17.04.2008 - 52 Hits - 3 Antworten