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.