Funkce Excel VBA DIR
Dir je jednou z funkcí dostupných ve VBA. Dir funkce je pro odkazování adresářů v kódu VBA.
Funkce, která vrací název souboru nebo adresáře, který odpovídá danému atributu nebo řetězci, jinak vrací první soubor nebo složku. Zjednodušeně řečeno, pokud máme složku ABC a uvnitř ABC je soubor XYZ, můžeme k souboru XYZ přistupovat pomocí funkce DIR ve VBA.
Vzorec pro funkci DIR v Excelu VBA
Funkce DIR má v Excel VBA následující syntaxi:
Má dvě části: Pathname a Atributes.
- Cesta: Podle jména může každý pochopit, že jde o cestu k souboru, kde soubor skutečně existuje. Pokud do cesty nezadáme žádnou cestu, vrátí prázdný řetězec.
- Atribut: Jedná se o volitelný argument, který z velké části nevyužíváme. Můžeme to použít, když chceme otevřít soubor s níže uvedenými atributy, pak VBA hledá tyto soubory.
vbArchive | Určuje archivy nebo záložní soubory. |
vbNormal | Normální (výchozí) nebo žádné atributy. |
vbReadOnly | soubory jen pro čtení |
vbSystem | Systémové soubory |
vbVolume | objemový štítek; Pokud s tímto atributem použijete jiný atribut, bude označení svazku ignorováno. |
vbDirectory | Adresáře nebo složky. |
vbHidden | skryté soubory |
vbAlias | Název souboru je alias |
Jak používat funkci DIR v aplikaci Excel VBA?
Níže jsou uvedeny různé příklady použití funkce DIR v Excelu pomocí kódu VBA.
Tuto šablonu VBA DIR Excel si můžete stáhnout zde - VBA DIR Excel ExcelFunkce VBA DIR - Příklad č. 1
V tomto příkladu uvidíme, jak získat přístup k názvu souboru pomocí funkce DIR ve VBA.
Krok 1: Přejděte na kartu Vývojáři a klikněte na Visual Basic
Krok 2: Otevřete modul z nabídky Vložit, jak je ukázáno níže.
Krok 3: Chcete-li spustit jakékoli makro, nejprve musíme makro pojmenovat pomocí klíčového slova „sub“, jak je uvedeno níže.
Kód:
Sub myexample1 () End Sub
Pamatujte, že když zadáme „sub myexample ()“, zapíšeme náš kód do „Module1“, automaticky se objeví „End sub“.
Krok 4: Definujte řetězec pomocí klíčového slova „ Dim “, které odkazuje na dimenzi. Na níže uvedeném snímku je „mystring“ název řetězce.
Kód:
Sub myexample1 () Dim mystring jako String End Sub
Nezapomeňte, že při definování názvů datových typů nebo názvů programů by mezi dvěma slovy neměla být mezera. „Mystring“ mezi mezerami „my“ a „string“ není mezera.
Soubor je k dispozici ve vzorové složce, která je k dispozici na ploše, a název souboru je „KT tracker mine“.
C: \ Users \ cba_13 \ Desktop \ Sample \
Krok 5: Nyní musíme uložit název souboru do „mystring“ pomocí funkce Dir.
Kód:
Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") End Sub
Ve výše uvedeném snímku ve funkci Dir jsem uvedl cestu k souboru bez názvu souboru. Protože existuje pouze jeden soubor, vrátí název souboru.
Krok 6: Nyní s výše uvedeným krokem název souboru uložený v řetězci „mystring“. Chcete-li zobrazit název souboru, musíme jej zobrazit pomocí okna se zprávou. Vytvořte okno se zprávou.
Kód:
Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") MsgBox (mystring) End Sub
Dali jsme pokyn k zobrazení dat v okně „mystring“ prostřednictvím zprávy, protože „mystring“ má název souboru, zobrazí název souboru v okně zprávy.
Krok 7: Nyní spusťte kód kliknutím na tlačítko Přehrát nebo stisknutím klávesy F5.
Funkce VBA DIR - Příklad č. 2
V tomto příkladu uvidíme, jak otevřít soubor pomocí funkce DIR v Excel VBA.
Krok 1: Otevřete obrazovku s kódem VBA a začněte zadáním názvu programu jako „example2“ nebo libovolného jména, které si přejete.
Kód:
Subpriklad2 () Konec Sub
Krok 2: Definujte dva řetězce s názvem „Foldername“ a „Filename“.
Kód:
Sub example2 () Dim Název složky jako řetězec Dim Název souboru jako řetězec End Sub
Krok 3: Nyní k názvu složky přiřaďte cestu ke složce.
Kód:
Sub example2 () Dim Název složky jako řetězec Dim Název souboru jako řetězec Název složky = "C: \ Users \ cba_13 \ Desktop \ Sample \" End Sub
Krok 4: Pomocí funkce Dir přiřaďte soubor k „názvu souboru“. Zde jsme použili proměnnou „Foldername“, protože má cestu ke složce. S pomocí ampersandu jsme do cesty přidali název souboru.
Kód:
Sub example2 () Dim Název složky jako řetězec Dim Název souboru jako řetězec Název složky = "C: \ Users \ cba_13 \ Desktop \ Sample \" Filename = Dir (Název složky a "KT Tracker mine.xlsx") End Sub
Funkce Dir nyní vrátí název souboru a uloží se do proměnné „filename“.
Krok 5: V předchozím příkladu jsme použili okno zprávy, abychom viděli výsledky. V tom však chceme soubor otevřít, takže použijeme příkaz „workbooks.open“.
Kód:
Sub example2 () Dim Název složky jako řetězec Dim Název souboru jako řetězec Název složky = "C: \ Users \ cba_13 \ Desktop \ Sample \" Filename = Dir (Název složky a "KT Tracker mine.xlsx") Workbooks.Open Foldername & Filename End Sub Sub
Krok 6: Spusťte výše uvedený kód a otevře soubor dostupný ve složce „C: \ Users \ cba_13 \ Desktop \ Sample \“ s názvem souboru „KT Tracker mine“.
Funkce VBA DIR - Příklad č. 3
Nyní uvidíme program, abychom věděli, zda je složka k dispozici nebo ne. Mám složku „Data“, jak je ukázáno níže.
Musíme pomocí funkce Dir zkontrolovat, zda je na cestě C: \ Users \ cba_13 \ Desktop \ Sample \ k dispozici složka „Data“.
Krok 1: Vytvořte název programu a definujte dva řetězce s názvy FD a FD1.
Kód:
Příklad 3 () Dim Fd jako řetězec Dim Fd1 jako konec řetězce Sub
Krok 2: Přiřaďte cestu ke složce k proměnné „Fd“.
Kód:
Subpriklad3 () Dim Fd jako řetězec Dim Fd1 jako řetězec Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" End Sub
Krok 3: Nyní pomocí funkce Dir vraťte název složky, jak je uvedeno níže.
Kód:
Subpriklad3 () Dim Fd jako řetězec Dim Fd1 jako řetězec Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) End Sub
Výsledkem funkce Dir by měl být název složky a bude uložen v řetězcové proměnné Fd1. Pokud složka „Data“ není v příslušné složce k dispozici, nevrací žádný řetězec.
Krok 4: Nyní musíme zkontrolovat, zda má Fd1 složku „Data“ nebo ne. Pomocí podmínky IF zkontrolujte, zda má Fd1 řetězec „Data“ nebo ne. Pokud je k dispozici, vytiskněte příkaz jako „existuje“.
Kód:
Subpriklad3 () Dim Fd jako řetězec Dim Fd1 jako řetězec Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Pokud Fd1 = "Data", pak MsgBox ("Exits") End Sub
Krok 5: V případě, že se Fd1 neshoduje se složkou „Data“, vytiskne příkaz „Not Exists“ v jiném stavu.
Kód:
Subpriklad3 () Dim Fd jako řetězec Dim Fd1 jako řetězec Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Pokud Fd1 = "Data", pak MsgBox ("Exits") Else MsgBox („Not Exits“) End Sub
Krok 6: Ukončete smyčku „If“, jak je ukázáno na obrázku níže.
Kód:
Subpriklad3 () Dim Fd jako řetězec Dim Fd1 jako řetězec Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Pokud Fd1 = "Data", pak MsgBox ("Exits") Else MsgBox ("Not Exits") End If End Sub
Krok 7: Spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát a zkontrolujte, zda je složka k dispozici nebo ne. Pokud je v této složce k dispozici složka „Data“, vrátí se v ní okno se zprávou „Existuje“, jak je uvedeno níže.
Krok 8: Stačí změnit název složky jako Data1.
Sub example3 () Dim Fd jako řetězec Dim Fd1 jako řetězec Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data1" Fd1 = Dir (Fd, vbDirectory) Pokud Fd1 = "Data", pak MsgBox ("Exits") Else MsgBox ("Not Exits") End If End Sub
Krok 9: Spusťte kód znovu. Nyní je výsledkem „Neexistuje“, jak je uvedeno níže.
Co si pamatovat
- Argumenty ve funkci Dir jsou volitelné.
- Pokud chceme skryté soubory, složky nebo různé typy adresářů, pak v druhém argumentu uveďte svůj požadavek.
- Pomocí "\" na konci názvu složky přejděte do složky pomocí funkce Dir.
- Pokud chceme zavolat nebo otevřít více souborů, můžeme použít zástupný znak „*“ nebo „?“.
Doporučené články
Toto je průvodce funkcí VBA DIR. Zde diskutujeme o tom, jak používat funkci DIR v Excelu VBA, spolu s několika praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -
- Sešit VBA
- NEPRIAME Funkce v Excelu
- Počet VBA
- Funkce Excel XOR