Select a folder : File « File Path « VBA / Excel / Access / Word






Select a folder

 

Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Public 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

Function GetDirectory() As String
    Dim bInfo As BROWSEINFO
    Dim path As String
    Dim r As Long, x As Long, pos As Integer
 
    bInfo.pidlRoot = 0&
    bInfo.lpszTitle = "Select a folder."
    bInfo.ulFlags = &H1

    x = SHBrowseForFolder(bInfo)
    
    path = Space$(512)
    r = SHGetPathFromIDList(ByVal x, ByVal path)
    If r Then
        pos = InStr(path, Chr$(0))
        GetDirectory = Left(path, pos - 1)
    Else
        GetDirectory = ""
    End If
End Function

Sub GetAFolder()
    Debug.Print GetDirectory()
End Sub

 








Related examples in the same category

1.Does the specified file exist?
2.Check file existance
3.Gets the file name from the path.
4.List all files under application path
5.Select a location containing the files you want to list
6.processes multiple stored files
7.Common File Operations Simplified
8.Use array to store a list of files