Excel VBA FileDialog
Ve VBA fieldialog je vlastnost, která se používá k reprezentaci různých instancí, ve filedialogu existují čtyři různé typy konstant, které jsou známé jako msofiledialogfilepicker, které se používá k výběru souboru z dané cesty, druhý je msofiledialogfolderpicker, jehož název naznačuje, že se používá k výběru složka a třetí je msofiledialog open pro otevření souboru a poslední je msofiledialogsaveas, který slouží k uložení souboru jako nového souboru.
Existují určité okolnosti, kdy chceme data z jakéhokoli jiného souboru nebo jiného listu, a protože se k automatizaci naší práce používá VBA, můžeme pomocí VBA otevírat různé další soubory, a to se děje pomocí dialogového okna Soubor, chladné části použití této metody spočívá v tom, že nemusíme zadávat cestu ke kódu, místo toho požádáme uživatele o procházení souboru.
V rámci projektu VBA můžeme vyžadovat otevření dalších sešitů a provedení nějakého úkolu s nimi. V jednom z dřívějších článků „VBA Workbook.Open“ jsme si ukázali, jak otevírat soubory se zadanou cestou a konkrétním souborem. Tam jsme potřebovali zadat cestu ke složce a název souboru s příponou. Ale co když uživatel musí pokaždé vybrat různé soubory z různých složek. To je místo, kde se na obrázku objeví možnost „FileDialog“.

Jak funguje možnost VBA FileDialog?
"Pokud neznáš přesnou cestu, FileDialog soubor najde a vybere ti." Místo toho, abychom zmínili adresu cesty a název souboru, můžeme samostatně zobrazit dialogové okno pro otevření souboru a vybrat soubor z libovolné složky v počítači.
„FileDialog“ je objekt ve VBA. Chcete-li nejprve použít tuto možnost, musíme definovat proměnnou jako FileDialog.

Jakmile je proměnná deklarována jako „FileDialog“, jedná se o proměnnou objektu. Chcete-li to začít používat, musíme objekt nastavit pomocí Application.FileDialog.

Jak vidíme na obrázku výše, FileDialog má čtyři možnosti.
- msoFileDialogFilePicker: Tato možnost otevře okno pro výběr souboru před uživatelem a vybere požadovaný soubor podle jeho přání.
- msoFileDialogFolderPicker: Tato možnost otevře dialogové okno nebo okno před uživatelem a vybere složku.
- msoFileDialogOpen: To uživateli umožní otevřít vybraný soubor ze složky.
- msoFileDialogSaveAs: Toto uživateli umožní uložit soubor jako jinou kopii.
Od této chvíle jsem vybral možnost msoFileDialogFilePicker.
Nyní musíme navrhnout dialogové okno, které se objeví před námi.
Pomocí With Statement můžeme navrhnout dialogové okno.

Uvnitř s příkazem vložte tečku, abyste viděli seznam IntelliSense vlastností a metod možnosti FileDialog.

Chcete-li zobrazit pouze soubory aplikace Excel, když se otevře dialogové okno souboru, musíme nejprve odebrat kterýkoli z použitých filtrů.

Nyní musíme použít nový filtr jako „Soubory Excel“ se zástupnými příponami souborů aplikace Excel.

Nyní změňme název dialogového okna souboru.

Můžeme uživateli povolit výběr pouze jednoho souboru najednou, nebo mu můžeme také umožnit výběr více souborů. K tomu musíme použít „Povolit vícenásobný výběr“.

Máme zde dvě možnosti. Pokud je vybrána hodnota TRUE, umožní uživateli vybrat více souborů. Pokud je, může uživatel FALSE vybrat najednou pouze jeden soubor.
Další věc, kterou můžeme navrhnout pomocí FileDialog, je, že můžeme skutečně trvat na tom, co by mělo být výchozí složkou, když se zobrazí dialogové okno souboru. Pro toto použití počáteční název souboru.

Za tímto účelem musíme zmínit výchozí složku, která má být otevřena cesta k adrese.

Nyní konečně musíme použít metodu „Zobrazit“, aby se zobrazilo dialogové okno souboru.
Kód:
Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "Soubory Excel", "* .xlsx?", 1 .Title = "Vyberte svůj soubor Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Zobrazit konec s koncovým dílem

Nyní spusťte kód VBA, abyste viděli výsledek.

Jak vidíme ve výše uvedeném obrazovém souboru, dialogové okno ve výchozím nastavení otevřelo uvedenou složku.
Nyní můžeme vybrat libovolnou podsložku a vybrat soubory aplikace Excel.

Podívejte se na výše uvedený obrázek, protože jsme parametr filtru použili pouze jako „Soubory Excel“.
Tím pouze vyberete soubor ze zmíněné složky. Abychom mohli uložit celou cestu, musíme deklarovat ještě jednu proměnnou jako řetězec.

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 = "Choose your Excel soubor !!! " .AllowMultiSelect = False .InitialFileName = "D: Excel Files". Show FileAddress = .SelectedItems (1) End with MsgBox FileAddress End Sub