Prompt the user to select a folder.
Syntax .BrowseForFolder(WINDOW_HANDLE, "Window Title", WINDOW_OPTIONS, StartPath) Key WINDOW_HANDLE This should always be 0 WINDOW_OPTIONS Const BIF_RETURNONLYFSDIRS = &H0001 (The default) Const BIF_DONTGOBELOWDOMAIN = &H0002 Const BIF_STATUSTEXT = &H0004 Const BIF_RETURNFSANCESTORS = &H0008 Const BIF_EDITBOX = &H0010 Const BIF_VALIDATE = &H0020 Const BIF_NONEWFOLDER = &H0200 Const BIF_BROWSEFORCOMPUTER = &H1000 Const BIF_BROWSEFORPRINTER = &H2000 Const BIF_BROWSEINCLUDEFILES = &H4000 ' These can be combined e.g. BIF_EDITBOX + BIF_NONEWFOLDER StartPath A drive/folder path or one of the following numeric constants: DESKTOP = 0 PROGRAMS = 2 DRIVES = 17 NETWORK = 18 NETHOOD = 19 PROGRAMFILES = 38 PROGRAMFILESx86 = 48 WINDOWS = 36
Although you can display files with .BrowseForFolder, the method will only return a folder, hence the name.
Example
Dim objFolder, objShell Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(0, "Please select the folder.", 1, "") If Not (objFolder Is Nothing) Then wscript.echo "Folder: " & objFolder.title wscript.echo "Full Path: " & objFolder.Self.path End If
“You affect the world by what you browse” ~ Tim Berners-Lee
Related:
.Application - BrowseForFolder/Open
FileSystemObject - Work with Drives, Folders and Files