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 służy do wybierania folder, a trzeci to msofiledialog otwarty do otwarcia pliku, a ostatni to msofiledialogsaveas, który jest używany do zapisania pliku jako nowego pliku.
Istnieją pewne okoliczności, w których chcemy danych z dowolnego innego pliku lub innego arkusza roboczego, a ponieważ VBA jest używany do automatyzacji naszej pracy, możemy otwierać inne inne pliki za pomocą VBA i odbywa się to za pomocą okna dialogowego Plik, fajnej części korzystania z tej metody 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 jednym z wcześniejszych artykułów, „VBA Workbook.Open”, pokazaliśmy, jak otwierać pliki o określonej ścieżce i określonym pliku. Tam musieliśmy podać ścieżkę do folderu i nazwę pliku wraz 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 na komputerze.
„FileDialog” to obiekt w języku VBA. Aby najpierw skorzystać z tej opcji, 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 z 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 zezwolić użytkownikowi na wybranie tylko jednego pliku naraz, lub możemy również pozwolić im na wybranie wielu plików. W tym celu musimy użyć opcji „Zezwalaj na wybór wielokrotny”.

Mamy tutaj dwie opcje. Jeśli wybierzesz TRUE, pozwoli to użytkownikowi wybrać wiele plików. Jeśli tak, użytkownik FALSE może wybrać tylko jeden plik naraz.
Inną rzeczą, którą możemy zaprojektować za pomocą FileDialog, jest fakt, że możemy nalegać na to, jaki powinien być domyślny folder, gdy pojawi się okno dialogowe pliku. W tym celu Początkowa nazwa pliku.

W tym celu musimy wspomnieć o domyślnej ścieżce adresu do otwarcia folderu.

Na koniec 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.

Now inside the with the statement, select “SelectedItems.” Assign the selected items folder path to the newly defined variable.

Now finally show the selected folder path in the VBA message box.

Now I will run the program to see the dialogue box.

Now I have selected the File Name as “1. Charts.xlsx” in the subfolder “Charts.” If I click on OK, we can see the full folder path in the message box.

So, like this, we can use the FileDialog option to select the files from the folder in Excel. Use the below code to select the files.
Code:
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