VBA FileDialog

Okno dialogowe pliku Excel VBA

W VBA fieldialog jest właściwością, która jest używana do reprezentowania różnych instancji, w filedialog są cztery różne typy stałych, które są znane jako msofiledialogfilepicker, który służy do wybierania pliku z podanej ścieżki druga to msofiledialogfolderpicker, którego nazwa sugeruje folder, a trzeci to msofiledialog otwarty, aby otworzyć plik, a ostatni to msofiledialogsaveas, który służy do zapisania pliku jako nowego pliku.

Są pewne okoliczności, w których chcemy danych z dowolnego innego pliku lub innego arkusza roboczego, a ponieważ VBA służy do automatyzacji naszej pracy, możemy otwierać inne inne pliki za pomocą VBA i odbywa się to za pomocą Filedialog, fajnej części korzystania z tego polega na tym, że nie musimy podawać ścieżki do kodu, zamiast tego prosimy użytkownika o przejrzenie pliku.

W ramach projektu VBA możemy wymagać otwarcia innych skoroszytów i wykonania z nimi jakiegoś zadania. W naszym jednym z wcześniejszych artykułów „VBA Workbook.Open” pokazaliśmy, jak otwierać pliki z określoną ścieżką i określonym plikiem. Tam musieliśmy podać ścieżkę do folderu i nazwę pliku z rozszerzeniem. Ale co, jeśli za każdym razem użytkownik musi wybrać różne pliki z różnych folderów. W tym miejscu pojawia się opcja „FileDialog”.

Jak działa opcja VBA FileDialog?

„Jeśli nie znasz dokładnej ścieżki, FileDialog znajdzie i wybierze plik”. Zamiast wspominać o adresie ścieżki i nazwie pliku, możemy osobno przedstawić okno dialogowe otwierania pliku, aby wybrać plik z dowolnego folderu komputera.

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

„FileDialog” to obiekt w języku VBA. Aby skorzystać z tej opcji, najpierw musimy zdefiniować zmienną jako FileDialog.

Po zadeklarowaniu zmiennej jako „FileDialog” staje się zmienną obiektową. Aby zacząć z tego korzystać, musimy ustawić obiekt za pomocą Application.FileDialog.

Jak widać na powyższym obrazku, FileDialog ma cztery opcje.

  • msoFileDialogFilePicker: Ta opcja otwiera okno wyboru plików przed użytkownikiem, aby wybrać żądany plik zgodnie z jego życzeniem.
  • msoFileDialogFolderPicker: Ta opcja otwiera okno dialogowe lub okno przed użytkownikiem, aby wybrać folder.
  • msoFileDialogOpen: Umożliwi to użytkownikowi otwarcie wybranego pliku z folderu.
  • msoFileDialogSaveAs: Umożliwi to użytkownikowi zapisanie pliku jako innej kopii.

Na razie wybrałem opcję msoFileDialogFilePicker.

Teraz musimy zaprojektować okno dialogowe, które pojawia się przed nami.

Używając instrukcji With możemy zaprojektować okno dialogowe.

Wewnątrz instrukcji umieść kropkę, aby wyświetlić listę IntelliSense właściwości i metod opcji FileDialog.

Aby zobaczyć tylko pliki Excela po otwarciu okna dialogowego pliku, musimy najpierw usunąć którykolwiek z zastosowanych filtrów.

Teraz musimy zastosować nowy filtr jako „Pliki Excela” z rozszerzeniem symboli wieloznacznych plików programu Excel.

Teraz zmieńmy tytuł okna dialogowego pliku.

Możemy pozwolić użytkownikowi wybrać tylko jeden plik naraz lub możemy również pozwolić mu na wybranie wielu plików. W tym celu musimy użyć opcji „Zezwalaj na wybór wielokrotny”.

Mamy tutaj dwie możliwości. Jeśli zostanie wybrana wartość TRUE, użytkownik będzie mógł wybrać wiele plików, jeśli jest to FALSE, użytkownik może wybrać tylko jeden plik na raz.

Inną rzeczą, którą możemy zaprojektować za pomocą FileDialog, jest fakt, że możemy nalegać na to, który powinien być domyślnym folderem, gdy pojawi się okno dialogowe pliku. W tym celu użyj początkowej nazwy pliku.

W tym celu musimy wspomnieć o domyślnym folderze do otwarcia ścieżka adresowa.

Teraz w końcu musimy zastosować metodę „Show”, aby zobaczyć okno dialogowe pliku.

Kod:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Pliki Excela", "* .xlsx?", 1 .Title = "Wybierz plik Excela !! ! ” .AllowMultiSelect = False .InitialFileName = "D: \ Pliki Excela" .Pokaż End With End Sub

Teraz uruchom kod VBA, aby zobaczyć wynik.

Jak widać w powyższym oknie dialogowym pliku obrazu domyślnie otworzył wspomniany folder.

Teraz możemy wybrać dowolny podfolder i wybrać pliki Excela.

Spójrz na powyższy obrazek, ponieważ zastosowaliśmy parametr filtru tylko jako „Pliki Excel”.

Spowoduje to po prostu wybranie pliku z wymienionego folderu. Aby zapisać pełną ścieżkę, musimy zadeklarować jeszcze jedną zmienną jako ciąg.

Teraz wewnątrz instrukcji with wybierz „SelectedItems”. Przypisz ścieżkę folderu wybranych elementów do nowo zdefiniowanej zmiennej.

Teraz w końcu pokaż wybraną ścieżkę folderu w oknie komunikatu VBA.

Teraz uruchomię program, aby wyświetlić okno dialogowe.

Teraz wybrałem nazwę pliku jako „1. Charts.xlsx ”w podfolderze„ Wykresy ”. Jeśli kliknę OK, zobaczymy pełną ścieżkę folderu w oknie komunikatu.

W ten sposób możemy użyć opcji FileDialog, aby wybrać pliki z folderu w programie Excel. Użyj poniższego kodu, aby wybrać pliki.

Kod:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Wybierz swój Plik Excel!!!" .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub