Folder przeglądania do wybierania folderu za pomocą VBA w programie Microsoft Excel

Anonim

W tym artykule stworzyliśmy procedurę, która służy do wyświetlania okna dialogowego, które służy do przeglądania folderu w celu wybrania folderu.

Ten kod może być używany wraz z innymi makrami, w których wymagany jest wybór folderu w czasie wykonywania.

Wyjaśnienie logiczne

W tym artykule odnieśliśmy się do dwóch funkcji API, aby wyświetlić okno dialogowe do przeglądania folderu.

Kiedy wybierzemy konkretny folder za pomocą przeglądarki folderów, okno dialogowe zwróci ścieżkę wybranego folderu.

Proszę postępować zgodnie z poniższym kodem!

 Option Explicit 'Deklarowanie typu danych użytkownika 'Używany przez funkcję GetFolderName 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 'Deklarowanie odwołania do funkcji API Private Declare Funkcja SHGetPathFromIDList Lib "shell32.dll" _ Alias ​​"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) Jako długa prywatna Zadeklaruj funkcję SHBrowseForFolder Lib "shell32.dll" _ Alias ​​"SHBrowseInfol AsFolderBROWA" (Msg As String) As String 'Zwraca nazwę folderu wybranego przez użytkownika Dim bInfo As BROWSEINFO, ścieżka As String, r As Long Dim X As Long, poz As Integer bInfo.pidlRoot = 0 'Typ katalogu do zwrócenia bInfo .ulFlags = &H1 'Wyświetl okno dialogowe X = SHBrowseForFolder(bInfo) 'Przetwarzaj ścieżkę wyniku = Space$(512) 'Wywołanie funkcji API r = SHGetPathFromIDList(ByVal X, ByVal path) 'Kod usuwania dodatkowych spacji w end nazwy folderu return If r Then pos = InStr(ścieżka, Chr(0)) GetFolderName = Left(ścieżka, poz - 1) Else GetFolderName = "" End If End Function Sub TestGetFolderName() Dim FolderName As String 'Wywoływanie funkcji GetFolderName FolderName = GetFolderName("Wybierz folder") If FolderName = "" Then MsgBox "Nie wybrałeś folderu." Else MsgBox "Wybrałeś ten folder: " & NazwaFolderu End If End Sub 

Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.

Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail