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

Okno dialogowe wskazujące plik

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

kliknij, aby powiększyć

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 
      • 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 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
        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

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.


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

FileDialog czyli okno dialogowe

Application.FileDialog to właściwość obiektu Application odpowiadająca za otwarcie okna dialogowego i wskazanie pliku/folderu. 

kliknij, aby powiększyć

Właściwość ta stosowana jest najczęściej przy konieczności wybrania pliku lub folderu i wykorzystania go w dalszej części kodu procedury. 
W kodzie VBA wygląda to tak:

kliknij, aby powiększyć

Jest jeden argument wejściowy: fileDialogType.  
Może on przyjmować następujące wartości:

W praktyce chyba nigdy nie zdarzyło mi się zastosować w projektach te dwie ostatnie wartości argumentu. Za to pierwszą i drugą – bardzo często. Zarówno w Excelu jak i Accessie. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

Obiekt Application

Obiekt Application w VBA w Accessie odnosi się do aktywnej instancji aplikacji Microsoft Access. Umożliwia dostęp do różnych ustawień i funkcjonalności całej aplikacji. Można go używać do manipulowania oknami, bazami danych, a także do uruchamiania akcji, które normalnie wykonuje się za pomocą makr. 

kliknij, aby powiększyć

Ma swoje właściwości i metody, z których wiele wymaga osobnego omówienia. Najczęściej stosowane to:

METODY

WŁAŚCIWOŚCI

 

sukcesywnie będą się tu pojawiać notki poświęcone niektórym z nich.