VBA FileDialog | Jak otevřít FilesDialog Box pomocí kódu VBA?

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 pracovní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 provádí pomocí Filedialog, což je skvělá část používání tohoto metoda spočívá v tom, že nemusíme uvádět 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 našem 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. Toto je místo, kde do obrazu vstupuje možnost „FileDialog“.

Jak funguje možnost VBA FileDialog?

"Pokud neznáte přesnou cestu, FileDialog soubor najde a vybere vám." 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.

Tuto šablonu VBA FileDialog Excel si můžete stáhnout zde - Šablona VBA FileDialog Excel

„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. Abychom to mohli začít používat, musíme nastavit objekt 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ř pomocí příkazu 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 pro soubory, 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 to FALSE, uživatel může vybrat pouze jeden soubor najednou.

Další věc, kterou můžeme navrhnout pomocí FileDialog, je, že můžeme skutečně trvat na tom, co by měla být výchozí složka, když se zobrazí dialogové okno souboru. K tomu použijte 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 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. K uložení celé cesty musíme deklarovat ještě jednu proměnnou jako řetězec.

Nyní uvnitř příkazu with vyberte „SelectedItems“. Přiřaďte cestu ke složce vybraných položek k nově definované proměnné.

Nyní konečně zobrazte cestu ke zvolené složce ve zprávě VBA.

Nyní spustím program, abych zobrazil dialogové okno.

Nyní jsem vybral název souboru jako „1. Charts.xlsx “v podsložce„ Grafy “. Pokud kliknu na OK, můžeme vidět celou cestu ke složce v okně se zprávou.

Takže takto můžeme použít volbu FileDialog k výběru souborů ze složky v aplikaci Excel. K výběru souborů použijte níže uvedený kód.

Kód:

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