Do wyświetlenia okna dialogowego i wybrania w nim folderu służy obiekt Application.Filedialog z parametrem wejściowym msoFileDialogFolderPicker.

Właściwości i parametry są tu takie same jak w przypadku okna dialogowego do wyboru pliku, ale niektóre z nich nie mogą być zastosowane, a nawet mogą wywołać błąd:
-
-
- AllowMultiSelect
właściwość ignorowana, w oknie dialogowym można wybrać tylko jeden folder - ButtonName
tekst na przycisku w oknie dialogowym (wartość typu String). Niestety, działa tylko dla systemu macOS, w Windowsie nie. - Filters
nie można dodawać filtrów. Okno dialogowe wyboru folderu nie ma takiej opcji. Przy użyciu pojawia się
błąd wykonania 438. - InitialFileName
wartość typu String ograniczająca wybór plików widocznych w oknie dialogowym, stosowana najczęściej z użyciem symboli wieloznacznych - InitialView
widok folderów w oknie dialogowym (szczegóły,podgląd itd.)kliknij, aby pwoiększyć
– ta właściwość czasami zawodzi. Jeżeli dany folder ma na komputerze wcześniej zmienione i zapisane w Eksploatorze plików preferowany sposób wyświetlania – wpisana tu opcja zostanie zignorowana. - SelectedItems
folder zaznaczony w oknie dialogowym - Show
wyświetlenie okna dialogowego na ekranie. Po wybraniu choć folderu – metoda ta zwróci wartość True. Po naciśnięciu Anuluj – wartość False. - Title
Tekst wyświetlany u góry okna dialogowego
- AllowMultiSelect
-
Na przykład takie procedury:
Public Sub WybierzFolder() Dim FD As FileDialog Dim NazwaFolder As String Set FD = Application.FileDialog(msoFileDialogFolderPicker) With FD .InitialFileName = „C:\*)” .InitialView = msoFileDialogViewDetails .Title = „Wskaż FOLDER” If .Show Then NazwaFolder = .SelectedItems(1) Else NazwaFolder= „Nie wskazano folderu” End If End With Set FD = Nothing MsgBox NazwaFolder End Sub |
A tak wygląda wygenerowane nim okno dialogowe:
Ja w swoich projektach najczęściej stosuję podobne procedury w formie funkcji. W ten sposób otrzymuję nazwę folderu, która mogą być użyta w innych procedurach.