Excel VBA DIR-functie

Dir is een van de beschikbare functies in VBA. Dir-functie is voor het verwijzen van mappen in VBA-code.
De functie die de bestands- of mapnaam retourneert die overeenkomt met het gegeven kenmerk of de tekenreeks retourneert anders het eerste bestand of map. In eenvoudige woorden, als we een map ABC hebben en binnen ABC is er een bestand XYZ, dan kunnen we toegang krijgen tot het XYZ-bestand met de DIR-functie in VBA.

Formule voor DIR-functie in Excel VBA

DIR-functie heeft de volgende syntaxis in Excel VBA:

Het heeft twee delen Padnaam en attributen.

  • Padnaam: bij de naam kan iedereen begrijpen dat dit het pad van het bestand is waar het bestand eigenlijk bestaat. Als we geen pad in padnaam invoeren, retourneert dit een lege tekenreeks.
  • Attribuut: Het is een optioneel argument, we gebruiken hier niet veel van. We kunnen dit gebruiken wanneer we het bestand met de onderstaande kenmerken willen openen en VBA zoekt naar die bestanden.
vbArchiveHiermee geeft u archieven of back-upbestanden op.
vbNormalNormaal (standaard) of geen attributen.
vbReadOnlyalleen-lezen bestanden
vbSystemSysteembestanden
vbVolumevolume label; Als u hier een ander kenmerk voor gebruikt, wordt het volumelabel genegeerd.
vbDirectoryMappen of mappen.
vbHiddenverborgen bestanden
vbAliasBestandsnaam is een alias

Hoe de DIR-functie in Excel VBA te gebruiken?

Hieronder staan ​​de verschillende voorbeelden om de DIR-functie in Excel te gebruiken met behulp van VBA-code.

U kunt deze VBA DIR Excel-sjabloon hier downloaden - VBA DIR Excel-sjabloon

VBA DIR-functie - Voorbeeld # 1

In dit voorbeeld zullen we zien hoe u toegang krijgt tot een bestandsnaam met behulp van de DIR-functie in VBA.

Stap 1: Ga naar het tabblad Ontwikkelaars en klik op Visual Basic

Stap 2: Open een module via de menuoptie Invoegen zoals hieronder wordt weergegeven.

Stap 3: Om een ​​macro te starten, moeten we eerst een naam geven aan de macro met het trefwoord 'sub' zoals hieronder.

Code:

 Sub mijnvoorbeeld 1 () Einde Sub 

Vergeet niet dat we onze code in "Module1" schrijven wanneer we "sub mijnvoorbeeld ()" invoeren, automatisch verschijnt de "Einde sub".

Stap 4: Definieer een string met behulp van het trefwoord " Dim " dat verwijst naar dimensie. In de onderstaande screenshot is 'mystring' de stringnaam.

Code:

 Sub myexample1 () Dim mystring As String End Sub 

Onthoud dat wanneer u de namen van gegevenstypen of programmanamen definieert, er geen spatie tussen twee woorden mag zijn. "Mystring" geen spatie tussen "my" en "string".

Het bestand is beschikbaar in de voorbeeldmap die beschikbaar is op het bureaublad en de bestandsnaam is "KT tracker mine".

C: \ Users \ cba_13 \ Desktop \ Sample \

Stap 5: Nu moeten we de bestandsnaam opslaan in "mystring" met de functie Dir.

Code:

 Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") End Sub 

In de bovenstaande screenshot in de functie Dir heb ik het bestandspad exclusief de bestandsnaam gegeven. Aangezien er slechts één bestand is, wordt de bestandsnaam geretourneerd.

Stap 6: Nu met de bovenstaande stap de bestandsnaam opgeslagen in de string "mystring". Om de bestandsnaam weer te geven, moeten we deze via een berichtvenster weergeven. Maak een berichtvenster.

Code:

 Sub myexample1 () Dim mystring As String mystring = Dir ("C: \ Users \ cba_13 \ Desktop \ Sample \") MsgBox (mystring) End Sub 

We hebben de instructie gegeven om de gegevens in "mystring" weer te geven via het berichtenvak, omdat "mystring" een bestandsnaam heeft, wordt de bestandsnaam via het berichtvenster weergegeven.

Stap 7: Voer nu de code uit door op de knop Afspelen te klikken of door op F5 te drukken.

VBA DIR-functie - Voorbeeld # 2

In dit voorbeeld zullen we zien hoe u een bestand kunt openen met de DIR-functie in Excel VBA.

Stap 1: Open het VBA-codescherm en begin met het geven van de programmanaam als "voorbeeld2" of een andere naam die u wenst.

Code:

 Subvoorbeeld2 () Einde Sub 

Stap 2: Definieer twee strings met de namen "Foldername" en "Bestandsnaam".

Code:

 Sub voorbeeld2 () Dim Foldernaam als String Dim Bestandsnaam als String End Sub 

Stap 3: Wijs nu het mappad toe aan de mapnaam.

Code:

 Subvoorbeeld2 () Dim Mapnaam als tekenreeks Dim Bestandsnaam als tekenreeks Mapnaam = "C: \ Users \ cba_13 \ Desktop \ Sample \" End Sub 

Stap 4: Wijs het bestand toe aan de 'bestandsnaam' met de functie Dir. Hier hebben we de variabele 'Foldername' gebruikt omdat deze het mappad heeft. Met behulp van ampersand hebben we de bestandsnaam aan het pad toegevoegd.

Code:

 Subvoorbeeld2 () Dim Folder name As String Dim Bestandsnaam As String Foldernaam = "C: \ Users \ cba_13 \ Desktop \ Sample \" Bestandsnaam = Dir (Foldernaam & "KT Tracker mine.xlsx") End Sub 

Nu geeft de functie Dir de bestandsnaam terug en wordt deze opgeslagen in de variabele "bestandsnaam".

Stap 5: In het vorige voorbeeld hebben we het berichtenvak gebruikt om de resultaten te bekijken. Maar hierin willen we het bestand openen, dus zullen we het commando "werkmappen.open" gebruiken.

Code:

 Subvoorbeeld2 () Dimmapnaam als tekenreeks Dimbestandsnaam als tekenreeks Mapnaam = "C: \ Users \ cba_13 \ Desktop \ Sample \" Bestandsnaam = Dir (mapnaam & "KT Tracker mine.xlsx") Werkmappen Open mapnaam en bestandsnaam Einde Sub 

Stap 6: Voer de bovenstaande code uit om het bestand te openen dat beschikbaar is in de map "C: \ Users \ cba_13 \ Desktop \ Sample \" met de bestandsnaam "KT Tracker mine".

VBA DIR-functie - Voorbeeld # 3

Nu zullen we het programma zien om te weten of een map beschikbaar is of niet. Ik heb de map 'Gegevens' zoals hieronder weergegeven.

We moeten met behulp van de Dir-functie controleren of de map "Data" beschikbaar is in het pad C: \ Users \ cba_13 \ Desktop \ Sample \.

Stap 1: Maak een programmanaam en definieer twee tekenreeksen met de namen FD en FD1.

Code:

 Sub voorbeeld3 () Dim Fd As String Dim Fd1 As String End Sub 

Stap 2: Wijs het mappad toe aan variabele "Fd".

Code:

 Subvoorbeeld3 () Dim Fd als tekenreeks Dim Fd1 als tekenreeks Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" End Sub 

Stap 3: Gebruik nu de Dir-functie om de mapnaam terug te geven zoals hieronder weergegeven.

Code:

 Subvoorbeeld3 () Dim Fd als tekenreeks Dim Fd1 als tekenreeks Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) End Sub 

Het resultaat van de Dir-functie moet de mapnaam zijn en wordt opgeslagen in de tekenreeksvariabele Fd1. Als de map "Data" niet beschikbaar is in de betreffende map, retourneert deze geen tekenreeks.

Stap 4: Nu moeten we controleren of Fd1 een map 'Data' heeft of niet. Gebruik de voorwaarde ALS om te controleren of Fd1 de tekenreeks 'Data' heeft of niet. Als het beschikbaar is, drukt u de instructie af als "Bestaat".

Code:

 Subvoorbeeld3 () Dim Fd als tekenreeks Dim Fd1 als tekenreeks Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Als Fd1 = "Data" Dan MsgBox ("Exits") End Sub 

Stap 5: In het geval dat Fd1 niet overeenkomt met de map "Data" zal de instructie "Not Exists" in de andere staat worden afgedrukt.

Code:

 Subvoorbeeld3 () Dim Fd als tekenreeks Dim Fd1 als tekenreeks Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Als Fd1 = "Data" Dan MsgBox ("Exits") Anders MsgBox ("Not Exits") End Sub 

Stap 6: Beëindig de "If" -lus zoals weergegeven in de onderstaande schermafbeelding.

Code:

 Subvoorbeeld3 () Dim Fd als tekenreeks Dim Fd1 als tekenreeks Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Als Fd1 = "Data" Dan MsgBox ("Exits") Anders MsgBox ("Not Exits") End If End Sub 

Stap 7: Voer de code uit door op F5 te drukken of door op de knop Afspelen te klikken om te controleren of de map beschikbaar is of niet. Als de map 'Gegevens' in die map beschikbaar is, retourneert deze het berichtenvak met het bericht 'Bestaat' zoals hieronder.

Stap 8: Wijzig gewoon de naam van de map als Data1.

 Subvoorbeeld3 () Dim Fd Als String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data1" Fd1 = Dir (Fd, vbDirectory) Als Fd1 = "Data" Dan MsgBox ("Exits") Anders MsgBox ("Not Exits") End If End Sub 

Stap 9: Voer de code opnieuw uit. Het resultaat is nu "bestaat niet" zoals hieronder weergegeven.

Dingen om te onthouden

  • De argumenten in de Dir-functie zijn optioneel.
  • Als we verborgen bestanden, mappen of verschillende soorten mappen willen, vermeld dan je vereiste in het tweede argument.
  • Gebruik "\" aan het einde van de mapnaam terwijl u de Dir-functie gebruikt om naar de map te gaan.
  • Als we meerdere bestanden willen oproepen of openen, kunnen we het jokerteken "*" of "?" Gebruiken.

Aanbevolen artikelen

Dit is een handleiding voor de VBA DIR-functie. Hier bespreken we hoe u de DIR-functie in Excel VBA kunt gebruiken, samen met enkele praktische voorbeelden en een downloadbare Excel-sjabloon. U kunt ook onze andere voorgestelde artikelen doornemen -

  1. VBA-werkboek
  2. INDIRECTE functie in Excel
  3. VBA-telling
  4. Excel XOR-functie

Categorie: