Excel VBA FileDialog

Podczas pracy mogą istnieć scenariusze, w których musimy otworzyć inne skoroszyty lub inne pliki, aby zaimportować dane lub skorzystać z referencji. Istnieje jedna metoda podania ścieżki pliku w naszym kodzie w VBA, która otworzy dla nas plik lub folder. Ale co, jeśli nie pamiętamy ścieżki, w jaki sposób możemy otworzyć plik. Być może będziemy musieli najpierw przeszukać ścieżkę, a następnie ponownie podać ścieżkę. VBA zawiera rozwiązanie znane jako FileDialog.

FileDialog to właściwość w VBA, która pozwala nam otworzyć plik lub folder ze ścieżki. Korzystając z tej właściwości, użytkownik nie musi określać ścieżki folderu, zamiast tego użytkownik może wybrać ścieżkę. FileDialog ma nie tylko cztery właściwości. Są one również znane jako stałe dla tej właściwości. Są to:

  1. msoFileDialogFilePicker : Pozwala to użytkownikowi wybrać plik.
  2. msoFileDialogFolderPicker : Pozwala to użytkownikowi wybrać folder.
  3. msoFileDialogOpen : Pozwala to użytkownikowi otworzyć plik.
  4. msoFileDialogSaveAs: Pozwala to użytkownikowi zapisać plik.

Metoda użycia tego obiektu w VBA jest następująca.

Application.FIledialog (Typ Filedialog)

Typem FileDialog może być dowolny z powyższych czterech typów. Teraz wykorzystajmy ten obiekt w przykładach, aby lepiej poznać tę właściwość obiektu.

Jak korzystać z Excel VBA FileDialog?

Poniżej znajdują się różne przykłady użycia FileDialog w programie Excel przy użyciu kodu VBA.

Możesz pobrać ten szablon Excel FileDialog VBA tutaj - szablon Excel FileDialog VBA

Excel VBA FileDialog - Przykład nr 1

Po pierwsze, pomóżmy użytkownikowi wybrać plik z miejsca docelowego. W tym przykładzie użytkownik wybierze plik z folderu, a my wyświetlimy ścieżkę do wybranego pliku.

Wykonaj poniższe kroki, aby użyć programu Excel VBA FileDialog:

Krok 1: Przejdź do karty Deweloperzy i kliknij Visual Basic.

Krok 2: Otwórz moduł z opcji menu Wstaw, jak pokazano poniżej.

Krok 3: Rozpocznij podprocedurę, aby rozpocząć pracę na przykładzie.

Kod:

 Sub SelectFile () End Sub 

Krok 4: Zadeklaruj zmienną jako Filedialog, jak pokazano poniżej.

Kod:

 Sub SelectFile () Dim File As FileDialog End Sub 

Krok 5: Teraz użyjmy tego obiektu z metody Application.Filedialog w następujący sposób.

Krok 6: Po otwarciu nawiasu widzimy opcję czterech typów FileDialog, jak pokazano na poniższym obrazku.

Krok 7: Wybierz opcję typu Filedialog jako msoFileDialogFilePicker

Kod:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) End Sub 

Krok 8: Teraz musimy utworzyć okno dialogowe dla tego przykładu, użyjmy z instrukcją w następujący sposób.

Kod:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) z końcem pliku z końcem Sub 

Krok 9: Jeśli są jakieś filtry, musimy je wyczyścić, umieść instrukcję kropkową i napisz instrukcję, jak pokazano poniżej.

Kod:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear End With End Sub 

Krok 10: Czy chcemy teraz, aby użytkownik wybrał wiele plików jednocześnie czy pojedynczy plik? W tym przykładzie trzymajmy się pojedynczego pliku na raz, więc użyj .Allowmultiselect jako false.

Kod:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False End With End Sub 

Krok 11: Teraz, aby wyświetlić okno dialogowe, możemy napisać .show, aby pokazać okno dialogowe w następujący sposób.

Kod:

 Sub SelectFile () Dim File As FileDialog Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show End With End Sub 

Krok 12: Po wykonaniu powyższego kodu możemy zobaczyć okno dialogowe w następujący sposób.

Krok 13: Ponieważ musimy wyświetlić wybraną ścieżkę użytkownika, zadeklaruj inną zmienną jako ciąg w kodzie.

Kod:

 Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False. Show End With End Sub 

Krok 14: Użyjemy instrukcji selectitems, aby znaleźć ścieżkę dla wybranego użytkownika pliku i zapisać ją w naszej zmiennej w następujący sposób.

Kod:

 Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show Path = .SelectedItems (1) End With End Sub 

Krok 15: Po instrukcji With użyj funkcji msgbox, aby wyświetlić adres wybranego pliku.

Kod:

 Sub SelectFile () Dim File As FileDialog Dim Path As String Set File = Application.FileDialog (msoFileDialogFilePicker) With File .Filters.Clear .AllowMultiSelect = False .Show Path = .SelectedItems (1) End With MsgBox Path End Sub Sub 

Krok 16: Wykonajmy powyższy kod, wybierz plik i naciśnij ok, aby zobaczyć ścieżkę w następujący sposób.

Excel VBA FileDialog - Przykład # 2

Zobaczmy teraz inną opcję obiektu FileDialog VBA, którym jest msoFileDialogSaveAs. Ta właściwość służy do zapisywania pliku w dowolnej ścieżce. Wykonaj poniższe kroki, aby użyć programu Excel VBA FileDialog.

Krok 1: W tym samym module napiszmy kolejną procedurę podrzędną, aby zapisać plik w następujący sposób.

Kod:

 Sub SaveFile () End Sub 

Krok 2: Teraz zadeklaruj dwie zmienne, jedną jako ciąg, a drugą jako liczbę całkowitą.

Kod:

 Sub SaveFile () Dim Choice As Integer, Path As String End Sub 

Krok 3: Teraz sprawmy, aby okno dialogowe było widoczne dla użytkownika za pomocą właściwości show w następujący sposób.

Kod:

 Sub SaveFile () Dim Choice As Integer, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Show End Sub 

Krok 4: Teraz użyj instrukcji IF, aby określić wybór użytkownika w następujący sposób.

Kod:

 Sub SaveFile () Dim Choice As Integer, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Show If Choice 0 Następnie End Sub 

Krok 5: Teraz uzyskajmy ścieżkę wybraną przez użytkownika w naszej zmiennej ścieżki w następujący sposób.

Kod:

 Sub SaveFile () Dim Choice As Integer, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Show If Choice 0 Then Path = Application.FileDialog (msoFileDialogSaveAs) .SelectedItems (1) End Sub Sub 

Krok 6: Teraz wyświetlmy wynik za pomocą funkcji msgbox i zakończmy pętlę IF.

Kod:

 Sub SaveFile () Dim Choice As Integer, Path As String Choice = Application.FileDialog (msoFileDialogSaveAs) .Show If Choice 0 Then Path = Application.FileDialog (msoFileDialogSaveAs) .SelectedItems (1) Ścieżka MsgBox End End If End Sub 

Krok 7: Teraz uruchom powyższy kod i zobacz wynik, otworzy się okno dialogowe, aby zapisać plik.

Krok 8: Podaj nazwę pliku i naciśnij Zapisz, podając ścieżkę do pliku w następujący sposób.

Rzeczy do zapamiętania

  • FileDialog jest właściwością obiektu VBA.
  • Nie musimy określać ścieżki do kodu za pomocą tego obiektu.
  • Za pomocą operatora kropki możemy zobaczyć i wykorzystać właściwości IntelliSense obiektu.

Polecane artykuły

To jest przewodnik po VBA FileDialog. Tutaj omawiamy, jak używać obiektu FileDialog w programie Excel za pomocą kodu VBA, a także kilka praktycznych przykładów i szablonu programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Plik sprawdzania VBA istnieje
  2. Rozwiąż równanie w programie Excel
  3. Usuń plik VBA
  4. Jak wydrukować etykiety z Excela?
  5. Przykłady pisania kodu VBA

Kategoria: