Okno dialogowe wskazujące folder

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

kliknij, aby powiększyć

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

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.


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *