Gebruik van de VBA DIR-functie in Excel (7 praktische voorbeelden)

  • Deel Dit
Hugh West

De DIR functie in VBA toont vooral de directory of de bestanden uit een bepaalde map. Met deze functie kan ook het eerste bestand worden teruggegeven. Deze functie heeft veel gebruiksmogelijkheden om specifieke bestanden en mappen te verkrijgen. U hoeft alleen maar het bestandspad in de padnaam van de VBA code. U vindt het misschien moeilijker om de VBA DIR codes. Maak je geen zorgen, in dit artikel gaan we je enkele voorbeelden tonen voor een betere visualisatie om de VBA DIR Hopelijk kun je de functie gebruiken na het lezen van het artikel. Dus, laten we beginnen.

Download Praktijk Werkboek

Download het volgende oefenwerkboek. Het zal je helpen het onderwerp beter te begrijpen.

DIR Functie.xlsm

Inleiding tot de DIR-functie

Samenvatting:

De VBA DIR De functie geeft de naam van een bestand of map uit een gegeven mappad. Gewoonlijk geeft het het eerste bestand.

Syntax:

Dir [ (padnaam, [ attributen ] ] ]

Argumenten Uitleg:

Argument Vereist/optioneel Uitleg
PathName Optioneel Pad om toegang te krijgen en specificeert het bestand
Attributen Optioneel Constante of numerieke uitdrukking specificeert de attributen van overeenkomende bestanden

Er zijn een paar vooraf gedefinieerde attributen, namelijk-

Naam attribuut Beschrijving
vbNormal Bestanden zonder specifieke kenmerken
vbReadOnly Alleen-lezen bestanden zonder attributen
vbHidden Verborgen bestanden zonder attributen
vbSystem Systeembestanden zonder attributen
vbVolume Volume label
vbDirectory Directories of mappen zonder attributen
vbAlias De opgegeven bestandsnaam is een alias

7 voorbeelden van het gebruik van de VBA DIR-functie in Excel

Uit de beschrijving had u kunnen opmaken dat de VBA DIR functie geeft de bestandsnaam van de opgegeven padnaam. Laten we het aan de hand van een voorbeeld begrijpen. Hier hebben we een directory gemaakt Exceldemy_Folder om u verschillende voorbeelden te laten zien. Er zijn verschillende kleine mappen en bestanden in deze map.

1. Zoek de bestandsnaam in het pad

In onze map kunnen we een specifiek bestand vinden door het pad van de bestandsnaam op te geven.

Na het kopiëren van het bestandspad moet u de code uitvoeren.

Ga daarom naar de Ontwikkelaar tab>> pick Visual Basic Ga dan naar Plaats tab>> selecteer Module. In de Algemeen dialoogvenster, schrijven we de code.

Aangezien onze agenda is om de Bestandsnaam van de padnaam, stellen we de volledige padnaam in (van de root naar het bestand) en wordt onze code

 Sub Bestandsnamen() Dim FN Als String FN = Dir("E:\ExceldemySales_of_January.xlsx") MsgBox FN End Sub 

Hier in onze code hebben we de padnaam ingesteld als E:\Verkoop_van_januari.xlsx

Code Breakdown:

  • Aanvankelijk hebben we een stringvariabele gedeclareerd met de naam FN En de uitvoer van de Dir functie werd opgeslagen in deze variabele.
  • Vervolgens wordt de Dir functie vindt de bestandsnaam en geeft deze terug van het opgegeven pad.
  • Dan is de MsgBox stelt de uitvoer in via de berichtenbox. De MsgBox geeft uitvoer terug via een berichtvenster.
  • Voer dan de code uit met de F5 sleutel.

Tenslotte hebben we het bestand met de naam Verkoop_van_januari.xlsx .

2. Controleer het bestaan van een directory

We kunnen het bestaan van een directory controleren met de Dir functie. Laten we de code schrijven om te controleren of de Exceldemy map bestaat. Noteer de volgende code in het algemene vak en voer deze uit met de F5 sleutel.

 Sub CheckFile() Dim PN als String Dim File als String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) Als File "" Dan MsgBox File & " bestaat" Else MsgBox "Het bestand bestaat niet" End If End Sub 

Code Breakdown:

  • We hebben twee variabelen gedeclareerd; PN bevat de volledige padnaam van onze controledirectory.
  • Hier binnen de Dir functie hebben we twee waarden ingesteld, padnaam en de attribuutwaarde als vbDirectory Deze attribuutwaarde zal helpen om de directory te detecteren. En de uitvoer van deze functie wordt opgeslagen in de Bestand variabel.
  • Dan controleren we of de variabele leeg is of niet. Als we vinden dat de variabele niet leeg is, dan verklaren we het bestaan van de directory via een berichtvenster, anders bestaat de return niet.

Hier is de Exceldemy directory bestaat, dus vinden we " Exceldemy bestaat ", waarbij Exceldemy is de naam van de map.

3. Maak een map aan die niet bestaat

U kunt een map aanmaken die niet bestaat op uw PC. Hiervoor moet u een padnaam aanmaken die niet bestaat in uw mappen. Stel dat we een map gaan aanmaken met de naam Exceldemy_1 We zullen de MkDir commando om de directory aan te maken, maar daarvoor moeten we het volgende schrijven VBA code.

 Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy_1" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " File folder exists" Else MkDir PN MsgBox "A file folder has been created with the name" & File End If End Sub 

Hier hebben we een commando geschreven om de directory te maken met de padnaam uit de Anders blok van onze code. Ren de code met de F5 sleutel.

De map is aangemaakt. Laten we de map bekijken. De Exceldemy_1 map is nu zichtbaar op uw computer.

Vergelijkbare lezingen:

  • Een Sub aanroepen in VBA in Excel (4 voorbeelden)
  • Een waarde teruggeven in een VBA-functie (zowel array- als niet-arraywaarden)
  • VBA UCASE-functie gebruiken in Excel (4 voorbeelden)
  • Hoe de TRIM-functie in VBA in Excel gebruiken (definitie + VBA-code)

4. Zoek het eerste bestand in een directory

De voornaamste taak van de Dir Het enige wat u in de functie hoeft op te geven is de padnaam (tot aan de containerdirectory), en het zal het allereerste bestand uit die directory opleveren.

Laten we het eerste bestand van onze Exceldemy directory. Onze code zal

 Sub FirstFileinFolder() Dim FN Als String Dim PN Als String PN = "E:\Exceldemy" FN = Dir(PN) MsgBox "First File: " & FN End Sub 

Je ziet de basiscode; we hebben de padnaam doorgegeven aan de Dir functie. Nu Ren de code met de F5 toets, vindt u het eerste bestand in deze map.

5. Alle bestanden in een directory zoeken

In het vorige deel hebben we gezien hoe we de eerste bestandsnaam uit een directory kunnen vinden. De situatie kan zich voordoen wanneer u alle bestanden uit een specifieke directory moet vinden. Om alle bestanden in een specifieke directory te vinden, moet u het volgende schrijven VBA code.

 Sub AllFile() Dim FN als String Dim FL als String FN = Dir("E:\Exceldemy") Do While FN "" FL = FL & vbNewLine & FN = Dir() Loop MsgBox ("File List:" & FL) End Sub 

Hier zijn twee variabelen om de bestandsnamen als één ( FN ), en als een lijst ( FL ). Doe Terwijl lus itereert tot er geen bestand meer in de directory staat, met deze lus duwen we elke bestandsnaam in de FL variabel.

Voer de code uit, en u vindt alle bestanden in de directory, zoals in de onderstaande afbeelding.

6. Alle bestanden en mappen in een map vinden

We hebben in de vorige paragraaf vermeld waar we alle bestanden kunnen vinden. We kunnen ook alle submappen in een map vinden. Schrijf daarvoor het volgende VBA code die we hieronder hebben bijgevoegd.

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

De verandering in onze code is alleen het gebruik van attribuutparameters. We hebben de vbDirectory op dat gebied. Ren de code, en je vindt alle bestanden en submappen van Exceldemy_Folder .

7. Zoek alle bestanden van een specifiek type

Met behulp van de VBA Dir functie, kunnen we een bepaald type bestand vinden. Laten we een voorbeeld bekijken.

We gaan .csv bestanden uit onze directory. Onze code zal er als volgt uitzien-

 Sub SpecialTypeFiles() Dim FL als String Dim FN als String FN = Dir("E:\Exceldemy_Folder\*.csv") Do While FN "" FL = FL & vbNewLine & FN = Dir() Loop MsgBox ("Lijst van .csv-bestanden:" & FL) End Sub 

We hopen dat u de code hebt begrepen, die een soortgelijk mechanisme gebruikt om bestanden te vinden. In de padnaam hebben we een jokerteken ( * ). Dit sterretje (*) geeft aan dat elk teken tot elk getal kan voorkomen. Het jokerteken is zo gebruikt dat de bestandsnaam alles kan zijn, maar een .csv bestand.

Wanneer je de code uitvoert, zal het de .csv bestanden van onze Exceldemy map.

Praktijk Sectie

We hebben op elk blad aan de rechterkant een oefendeel voorzien om te oefenen. Doe het zelf.

Conclusie

Dat is alles over de sessie van vandaag. En dit zijn enkele eenvoudige voorbeelden van de VBA Dir functie in Excel. Laat het ons weten in het commentaargedeelte als u vragen of suggesties hebt. Voor een beter begrip kunt u het oefenblad downloaden. Bezoek onze website, Exceldemy , een one-stop Excel solution provider, om meer te weten te komen over diverse soorten Excel methodes. Bedankt voor uw geduld bij het lezen van dit artikel.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.