Do wyświetlenia okna dialogowego i wybrania w nim pliku/plików służy obiekt Application.Filedialog z parametrem wejściowym msoFileDialogFilePicker

Najczęściej stosowane właściwości i parametry:
-
-
- AllowMultiSelect
True dla możliwości wyboru większej ilości plików
False dla wyboru tylko jednego pliku - ButtonName
tekst na przycisku w oknie dialogowym (wartość typu String). Niestety, działa tylko dla systemu macOS, w Windowsie nie. - Filters
filtr decydujący o tym, jaki typ plików ma być wyświetlany w oknie dialogowym
kliknij, aby powiększyć - InitialFileName
wartość typu String ograniczająca wybór plików widocznych w oknie dialogowym, stosowana najczęściej z użyciem symboli wieloznacznych - InitialView
widok plików w oknie dialogowym (szczegóły,podgląd itd.)kliknij, aby powię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
pliki zaznaczone w oknie dialogowym - Show
wyświetlenie okna dialogowego na ekranie. Po wybraniu choć jednego pliku – 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 WybierzPlik() Dim FD As FileDialog Dim NazwaPlik As String Set FD = Application.FileDialog(msoFileDialogFilePicker) With FD .AllowMultiSelect = False .Filters.Clear .Filters.Add „Obrazy jpg”, „*.jpg” .Filters.Add „Obrazy gif”, „*.gif” .Filters.Add „Wszystkie pliki”, „*.*” .InitialView = msoFileDialogViewPreview .Title = „Wskaż plik” If .Show Then NazwaPlik = .SelectedItems(1) Else NazwaPlik = „Brak pliku” End If End With Set FD = Nothing MsgBox NazwaPlik 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ę pliku/plików, które mogą być użyte w innych procedurach np. przy otwarciu pliku, wstawienia obraz itp.