VBA DIR-functie

Excel VBA DIR-functie

VBA DIR- functie is ook bekend als de directory-functie, dit is een ingebouwde functie in VBA die wordt gebruikt om ons de bestandsnaam van een bepaald bestand of een map te geven, maar we moeten het pad voor het bestand opgeven, de output die hierdoor wordt geretourneerd functie is tekenreeks omdat het de naam van het bestand retourneert, er zijn twee argumenten voor deze functie, namelijk de padnaam en de attributen.

DIR-functie retourneert de allereerste bestandsnaam in het opgegeven mappad. Als u bijvoorbeeld in uw D Drive een mapnaam heeft met de naam 2019 en in die map, als u een Excel-bestand met de naam "2019 Sales" hebt, kunt u dit bestand openen met de DIR-functie.

De functie "VBA DIR" is erg handig bij het verkrijgen van de naam van het bestand door de padmap te gebruiken.

Syntaxis

Deze functie heeft twee optionele argumenten.

  • [Padnaam]: zeg zoals de naam het pad om toegang te krijgen tot het bestand. Dit kan ook de naam van het bestand, de naam van de map of directory zijn. Als er geen pad is toegewezen, zal ik een lege tekenreekswaarde retourneren, dwz ""
  • [Attributen]: Dit is ook een optioneel argument en u zult dit niet vaak gebruiken bij het coderen. U kunt het attribuut van het bestand specificeren in de [Padnaam] en de DIR-functie zoekt alleen naar die bestanden.

Bijvoorbeeld: als u alleen toegang wilt tot verborgen bestanden, als u alleen toegang wilt tot alleen-lezen bestanden, enz ... kunnen we dit in dit argument specificeren. Hieronder staan ​​de attributen die we kunnen gebruiken.

Voorbeelden om de VBA DIR-functie te gebruiken

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

Voorbeeld # 1 - Toegang tot de bestandsnaam met de DIR-functie

Ik zal u het eenvoudige voorbeeld uitleggen van toegang tot de bestandsnaam met behulp van de DIR-functie. Volg onderstaande stappen.

Stap 1: Maak een macronaam.

Stap 2: definieer de variabele als String .

Code:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Stap 3: Nu zullen we voor deze variabele waarde toewijzen met behulp van de DIR-functie .

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Stap 4: Kopieer en plak nu het pad naar de bestandsmap op uw computer. Noem de padnaam tussen dubbele aanhalingstekens.

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Stap 5: Ik heb mijn pad naar de map genoemd, nu moeten we ook de bestandsnaam en de extensie vermelden. Om dit te doen, moeten we eerst een backslash achter het pad (\) plaatsen

Na het invoeren van de backslash moeten we de volledige bestandsnaam invoeren .

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Stap 6: Toon de waarde van de variabele in het berichtvenster.

Code:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Voer nu de code uit en kijk wat het resultaat van het berichtvenster is.

Dus de DIR-functie retourneerde de bestandsnaam met de bestandsextensie.

Voorbeeld # 2 - Open bestand met de DIR-functie

Hoe openen we het bestand nu? Deze functie kan een bestandsnaam retourneren, maar het openen van dat bestand is een iets ander proces. Volg de onderstaande stappen om het bestand te openen.

Stap 1: Maak twee variabelen als String .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String End Sub 

Stap 2: Wijs nu voor de FolderName- variabele het mappad toe.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" End Sub 

Stap 3: Nu moeten we voor de FileName-variabele de bestandsnaam ophalen met behulp van de DIR-functie .

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" Bestandsnaam = Dir (End Sub 

Stap 4: Nu hebben we voor Path Name al een pad toegewezen aan de variabele FolderPath, dus we kunnen de variabele hier direct opgeven.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub 

Stap 5: Nu moeten we de bestandsnaam opgeven. Wijs de bestandsnaam toe door het ampersand-symbool (&) te gebruiken.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Stap 6: Gebruik nu de WORKBOOKS.OPEN methode.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Stap 7: Bestandsnaam is een combinatie van mappad en bestandsnaam . Combineer deze twee dus.

Code:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Voer nu deze code uit, het zal de genoemde bestandsnaam openen.

Voorbeeld # 3 - Open meerdere werkmappen met de DIR-functie

Actually, we can access all the workbooks in the folder. In order to access each and every file we cannot mention all the file names directly, but we can use the wildcard character to refer the file.

The asterisk (*) is one of those wildcard characters. It identifies any number of characters. For example, if you want to access all the macro files in the folder you can use the asterisk as the wildcard i.e. “*.xlsm*”

Here * will match any file name with the extension of the file is equal to “xlsm”.

Code:

 Sub Dir_Example3() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "*.xlsm*") Do While FileName  "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub 

Now the above code will open all the files in the folder path.

FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time it will take the next file in the folder.

Example #4 – Get all the File Names in the Folder

Suppose if you want the list of all the file names in the folder we can also do this by using attributes.

Code:

 Sub Dir_Example4() Dim FileName As String FileName = Dir("E:\VBA Template\", vbDirectory) Do While FileName  "" Debug.Print FileName FileName = Dir() Loop End Sub 

Make the immediate window visible by pressing Ctrl + G.

Now run the code we will get all the file names in the immediate window.