Jak používat funkci VBA DIR v aplikaci Excel (7 praktických příkladů)

  • Sdílet Toto
Hugh West

Na stránkách DIR funkce v VBA zobrazí především adresář nebo soubory z dané složky. Pomocí této funkce lze také vrátit první soubor. Tato funkce má spoustu využití pro získání konkrétních souborů a složek. Stačí jen vložit cestu k souboru do názvu složky VBA kód. Může být obtížnější použít kód VBA DIR Nebojte se, v tomto článku vám ukážeme několik příkladů pro lepší vizualizaci použití kódů. VBA DIR Doufám, že po přečtení článku budete schopni funkci používat. Tak se do toho pusťte.

Stáhnout cvičebnici

Stáhněte si následující cvičebnici. Pomůže vám lépe pochopit látku.

DIR Function.xlsm

Úvod do funkce DIR

Shrnutí:

Na stránkách VBA DIR funkce vrací název souboru nebo adresáře ze zadané cesty ke složce. Obvykle vrací první soubor.

Syntaxe:

Dir [ (název cesty, [ atributy ] ) ]

Vysvětlení argumentů:

Argument Povinné/volitelné Vysvětlení
PathName Volitelně Cesta pro přístup a určuje soubor
Atributy Volitelně Konstantní nebo číselný výraz určuje atributy odpovídajících souborů

Existuje několik předdefinovaných atributů.

Název atributu Popis
vbNormal Soubory bez specifických atributů
vbReadOnly Soubory pouze pro čtení bez atributů
vbHidden Skryté soubory bez atributů
vbSystem Systémové soubory bez atributů
vbVolume Štítek svazku
vbDirectory Adresáře nebo složky bez atributů
vbAlias Zadaný název souboru je alias

7 příkladů použití funkce VBA DIR v aplikaci Excel

Z popisu jste možná pochopili, že se jedná o VBA DIR Funkce poskytne název souboru ze zadaného názvu cesty. Pochopíme ji na příkladu. Zde jsme vytvořili adresář Exceldemy_Folder ukázat různé příklady. V této složce jsou různé malé složky a soubory.

1. Vyhledejte název souboru z cesty

V naší složce můžeme najít konkrétní soubor tak, že deklarujeme cestu k názvu souboru.

Po zkopírování cesty k souboru je třeba spustit kód.

Z tohoto důvodu přejděte na Vývojář karta>> vybrat Visual Basic Pak přejděte na Vložte karta>> vybrat Modul. V Obecné dialogové okno, napíšeme kód.

Protože naším cílem je najít Název souboru z názvu cesty, nastavíme úplný název cesty (od kořene až po soubor) a náš kód bude mít tvar

 Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub 

Zde jsme v našem kódu nastavili název cesty jako E:\Exceldemy\Prodej_z_ledna.xlsx

Rozdělení kódu:

  • Na začátku jsme deklarovali řetězcovou proměnnou s názvem FN . A výstup Dir funkce byla uložena do této proměnné.
  • Dále Dir funkce vyhledá název souboru a vrátí jej ze zadané cesty.
  • Pak se MsgBox nastaví výstup prostřednictvím pole zpráv. MsgBox vrátí výstup pomocí pole zpráv.
  • Poté spusťte kód pomocí příkazu F5 klíč.

Nakonec jsme našli soubor s názvem Tržby_z_ledna.xlsx .

2. Zkontrolujte existenci adresáře

Existenci adresáře můžeme ověřit pomocí příkazu Dir Napišme kód, který zkontroluje, zda je funkce Exceldemy Do obecného pole zapište následující kód a spusťte jej pomocí příkazu F5 klíč.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "The file doesn't exist" End If End Sub 

Rozdělení kódu:

  • Deklarovali jsme dvě proměnné; PN obsahuje úplný název cesty našeho kontrolního adresáře.
  • Zde v rámci Dir jsme nastavili dvě hodnoty, název cesty a hodnotu atributu jako vbDirectory . Tato hodnota atributu pomůže zjistit adresář. A výstup této funkce je uložen v adresáři Soubor variabilní.
  • Poté jsme zkontrolovali, zda je proměnná prázdná, nebo ne. Pokud jsme zjistili, že proměnná není, pak jsme existenci adresáře deklarovali prostřednictvím okna se zprávou, v opačném případě návrat neexistuje.

Zde se Exceldemy adresář existuje, takže najdeme " Exceldemy existuje ", kde Exceldemy je název složky.

3. Vytvoření neexistující složky

Můžete vytvořit složku, která ve vašem počítači neexistuje. K tomu je třeba vytvořit název cesty, který ve vašich složkách neexistuje. Představme si, že vytvoříme adresář s názvem Exceldemy_1 . Použijeme MkDir vytvořit adresář, ale ještě předtím musíme napsat následující příkaz VBA kód.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " Složka souboru existuje" Else MkDir PN MsgBox "Byla vytvořena složka souboru s názvem" & File End If End Sub 

Zde jsme napsali příkaz pro vytvoření adresáře pomocí názvu cesty z příkazu Jinak našeho kódu. Spustit kód s F5 klíč.

Adresář byl vytvořen. Podívejme se na složku adresáře. Exceldemy_1 je nyní v počítači viditelná.

Podobné čtení:

  • Jak zavolat podřízený program ve VBA v aplikaci Excel (4 příklady)
  • Vrácení hodnoty ve funkci VBA (pole i jiné hodnoty)
  • Použití funkce VBA UCASE v aplikaci Excel (4 příklady)
  • Jak používat funkci TRIM ve VBA v aplikaci Excel (definice + kód VBA)

4. Vyhledání prvního souboru z adresáře

Hlavním úkolem Dir Funkce má za úkol najít první soubor v zadaném adresáři. Stačí zadat název cesty (až po adresář kontejneru) a funkce vrátí první soubor z tohoto adresáře.

Najděme první soubor z našeho Exceldemy adresář. Náš kód bude

 Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "První soubor: " & FN End Sub 

Základní kód vidíte na obrázku; předali jsme název cesty do příkazu Dir funkce. Nyní Spustit kód s F5 najdete první soubor v tomto adresáři.

5. Vyhledání všech souborů z adresáře

V předchozí části jsme si ukázali, jak najít první název souboru z adresáře. Může nastat situace, kdy potřebujete najít všechny soubory z určitého adresáře. Chcete-li najít všechny soubory v určitém adresáři, musíte napsat následující příkaz VBA kód.

 Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Seznam souborů:" & FL) End Sub 

Zde jsou dvě proměnné pro uložení názvů souborů jako jediné ( FN ) a jako seznam ( FL ). Do While smyčka iteruje až do okamžiku, kdy v adresáři nezůstane žádný soubor, a pomocí této smyčky vložíme každý název souboru do adresáře FL variabilní.

Spusťte kód a najdete všechny soubory v adresáři, jako na obrázku níže.

6. Vyhledání všech souborů a složek z adresáře

V předchozí části jsme se zmínili o tom, kde najdeme všechny soubory. Můžeme také najít všechny podsložky ve složce. Za tímto účelem napište následující příkaz. VBA kód, který přikládáme níže.

 Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("File Lst:" & Lst) End Sub 

Změna v našem kódu spočívá pouze v použití parametrů atributů. Použili jsme parametr vbDirectory v této oblasti. Spustit kódu a najdete všechny soubory a podsložky Exceldemy_Folder .

7. Vyhledání všech souborů určitého typu

Použití VBA Dir můžeme najít jakýkoli konkrétní typ souboru. Prozkoumejme to na příkladu.

Najdeme .csv Náš kód bude vypadat následovně.

 Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Seznam souborů .csv:" & FL) End Sub 

Doufáme, že jste pochopili kód, který používá podobný mechanismus pro vyhledávání souborů. V názvu cesty jsme použili zástupný znak ( * ). Tato hvězdička (*) znamená, že se může vyskytovat jakýkoli znak až do libovolného čísla. Zástupný znak byl použit tak, že název souboru může být jakýkoli, ale musí být .csv soubor.

Po spuštění kódu se vrátí kód .csv soubory z naší Exceldemy adresář.

Praktická část

Na každém listu na pravé straně jsme pro vás připravili část pro procvičování. Provádějte ji prosím sami.

Závěr

To je vše o dnešním sezení. A to jsou některé jednoduché příklady. VBA Dir funkce v aplikaci Excel. Pokud máte nějaké dotazy nebo návrhy, dejte nám vědět v komentářích. Pro lepší pochopení si stáhněte cvičný list. Navštivte naše webové stránky, Exceldemy , komplexního poskytovatele řešení Excel, abyste se dozvěděli o rozmanitých druzích metod Excelu. Děkujeme za vaši trpělivost při čtení tohoto článku.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.