Procházení složky pro výběr složky pomocí VBA v aplikaci Microsoft Excel

Anonim

V tomto článku jsme vytvořili postup, který slouží k zobrazení dialogového okna, které slouží k procházení složky pro výběr složky.

Tento kód lze použít společně s dalšími makry, kde je za běhu vyžadován výběr složky.

Logické vysvětlení

V tomto článku jsme provedli odkaz na dvě funkce API k zobrazení dialogového okna pro procházení složky.

Když vybereme konkrétní složku pomocí prohlížeče složek, dialogové okno vrátí cestu k vybrané složce.

Pro kód prosím postupujte níže

 Možnost Explicitní „Deklarace typu uživatelských dat“ Používaná funkcí GetFolderName Soukromý typ BROWSEINFO vlastník jako dlouhý pidlRoot jako dlouhý pszDisplayName jako řetězec lpszTitle jako řetězec ulFlags jako dlouhý lpfn jako dlouhý lParam jako dlouhý iImage jako dlouhý koncový typ 'Deklarační odkaz na funkci API Soukromý Funkce SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (pidl ByVal tak dlouhý, ByVal pszPath jako řetězec) Jako dlouhá soukromá deklarace Funkce SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseForFolderSE" (Msg As String) As String 'Vrátí název složky vybrané uživatelem Dim bInfo As BROWSEINFO, cesta As String, r As Long Dim X As Long, pos As Integer bInfo.pidlRoot = 0' Typ adresáře pro návrat bInfo .ulFlags = & H1 'Zobrazit dialog X = SHBrowseForFolder (bInfo)' Analyzovat cestu výsledku = Space $ (512) 'Volání funkce API r = SHGetPathFromIDList (ByVal X, ByVal cesta)' Kód pro odstranění nadbytečných mezer v konec názvu složky vrátit If r Then pos = InStr (cesta, Chr (0)) GetFolderName = Left (cesta, poz - 1) Else GetFolderName = "" End If End Funkce Sub TestGetFolderName () Dim FolderName As String 'Volání funkce GetFolderName FolderName = GetFolderName ("Vyberte složku") Pokud FolderName = "" Pak MsgBox "Nevybrali jste složku." Jinak MsgBox "Vybrali jste tuto složku:" & FolderName End If End Sub 

Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail