VBA DIR İşlevi | Excel VBA DIR İşlevi nasıl kullanılır?

Excel VBA DIR İşlevi

VBA DIR işlevi aynı zamanda dizin işlevi olarak da bilinir; bu, bize belirli bir dosyanın veya klasörün dosya adını vermek için kullanılan VBA'da yerleşik bir işlevdir, ancak dosyanın yolunu, bunun döndürdüğü çıktıyı sağlamamız gerekir. işlev, dosyanın adını döndürdüğü için dizedir, bu işlevin yol adı ve öznitelikleri olan iki argümanı vardır.

DIR işlevi, belirtilen klasör yolundaki ilk dosya adını döndürür. Örneğin, D Sürücünüzde 2019 adında bir klasör adınız varsa ve bu klasörde, “2019 Satışları” adlı excel dosyanız varsa, DIR işlevini kullanarak bu dosyaya erişebilirsiniz.

"VBA DIR" işlevi, yol klasörünü kullanarak dosyanın adını almada çok yararlıdır.

Sözdizimi

Bu işlevin iki isteğe bağlı argümanı vardır.

  • [Yol Adı]: Dosyaya erişim yolunun adından da anlaşılacağı gibi. Bu, dosyanın adı, klasörün adı veya dizin olabilir. Herhangi bir yol atanmamışsa, boş dize değeri döndürürüm, yani ""
  • [Nitelikler]: Bu aynı zamanda isteğe bağlı bir argümandır ve bunu kodlamada çok sık kullanmayabilirsiniz. [Yol Adı] içinde dosyanın özniteliğini belirtebilirsiniz ve DIR işlevi yalnızca bu dosyaları arar.

Örneğin: Yalnızca gizli dosyalara erişmek istiyorsanız, yalnızca salt okunur dosyalara vb. Erişmek istiyorsanız… bu argümanda belirtebiliriz. Kullanabileceğimiz nitelikler aşağıdadır.

VBA DIR İşlevini kullanma örnekleri

Bu VBA Dir Excel Şablonunu buradan indirebilirsiniz - VBA Dir Excel Şablonu

Örnek 1 - DIR İşlevini Kullanarak Dosya Adına Erişim

DIR işlevini kullanarak dosya adına erişmenin basit örneğini size açıklayacağım. Aşağıdaki adımları izleyin.

Adım 1: Bir makro adı oluşturun.

Adım 2: Değişkeni String olarak tanımlayın .

Kod:

 Alt Dir_Example1 () Dim MyFile As String End Sub 

Adım 3: Şimdi bu değişken için DIR fonksiyonunu kullanarak değer atayacağız .

Kod:

 Alt Dir_Örnek1 () Dim MyFile As String MyFile = Dir (End Sub 

Adım 4: Şimdi dosya klasörü yolunu kopyalayıp bilgisayarınıza yapıştırın . Yol adını çift tırnak içinde belirtin.

Kod:

 Alt Dizin_Örnek1 () Karart MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Adım 5: Klasöre giden yolumdan bahsettim, şimdi dosya adını ve uzantısını da belirtmemiz gerekiyor. Bunu yapmak için ilk yapmamız gereken şey, yoldan (\) sonra bir ters eğik çizgi koymaktır.

Ters eğik çizgiyi girdikten sonra tam dosya adını girmemiz gerekir .

Kod:

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

Adım 6: Mesaj kutusunda değişkenin değerini gösterin.

Kod:

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

Şimdi kodu çalıştırın ve mesaj kutusunun sonucunun ne olduğunu görün.

DIR işlevi dosya adını dosya uzantısıyla döndürdü.

Örnek 2 - DIR İşlevini Kullanarak Dosya Açın

Şimdi dosyayı nasıl açacağız? Bu işlev dosya adını döndürebilir ancak bu dosyayı açmak biraz farklı bir işlemdir. Dosyayı açmak için aşağıdaki adımları izleyin.

Adım 1: String olarak iki değişken oluşturun .

Kod:

 Alt Dizin_Örnek2 () Dim FolderName As String Dim FileName As String End Sub 

Adım 2: Şimdi FolderName değişkeni için klasör yolunu atayın.

Kod:

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

Adım 3: Şimdi FileName değişkeni için, DIR işlevini kullanarak dosya adını almamız gerekiyor .

Kod:

 Alt Dir_Örnek2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Şablonu \" DosyaAdı = Dir (End Sub 

Step 4: Now for Path Name we have already assigned a path to the variable FolderPath, so we can directly supply the variable here.

Code:

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

Step 5: Now we need to supply the file name. By using the ampersand symbol (&) assign the file name.

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 

Step 6: Now use the WORKBOOKS.OPEN method.

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 

Step 7: File Name is a combination of FolderPath & FileName. So combine these two.

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 

Now run this code it will open the mentioned file name.

Example #3 – Open Multiple Workbooks using DIR Function

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.