İçindekiler
Bu DIR içinde işlev VBA temel olarak belirli bir klasördeki dizini veya dosyaları gösterir. Bu işlevle ilk dosyayı da döndürebilir. Bu işlevin belirli dosya ve klasörleri almak için birçok kullanımı vardır. Tek yapmanız gereken dosya yolunu VBA kodunu kullanmayı daha zor bulabilirsiniz. VBA DIR Endişelenmeyin, bu yazıda size daha iyi bir görselleştirme için bazı örnekler göstereceğiz. VBA DIR Umarım makaleyi okuduktan sonra fonksiyonu kullanabileceksiniz. Öyleyse başlayalım.
Alıştırma Çalışma Kitabını İndirin
Aşağıdaki alıştırma kitabını indirin. Konuyu daha iyi anlamanıza yardımcı olacaktır.
DIR Fonksiyonu.xlsmDIR Fonksiyonuna Giriş
Özet:
Bu VBA DIR fonksiyonu, verilen bir klasör yolundaki bir dosya veya dizinin adını döndürür. Geleneksel olarak, ilk dosyayı döndürür.
Sözdizimi:
Dir [ (pathname, [ attributes ] ) ]
Argümanlar Açıklama:
Tartışma | Gerekli / İsteğe bağlı | Açıklama |
---|---|---|
PathName | Opsiyonel | Yol erişmek için ve dosyayı belirtir |
Nitelikler | Opsiyonel | Sabit veya sayısal ifade eşleşen dosyaların özniteliklerini belirtir |
Önceden tanımlanmış birkaç özellik vardır, bunlar
Öznitelik Adı | Açıklama |
---|---|
vbNormal | Belirli öznitelikleri olmayan dosyalar |
vbReadOnly | Öznitelikleri olmayan salt okunur dosyalar |
vbHidden | Öznitelikleri olmayan gizli dosyalar |
vbSistem | Öznitelikleri olmayan sistem dosyaları |
vbHacim | Cilt etiketi |
vbDirectory | Öznitelikleri olmayan dizinler veya klasörler |
vbAlias | Belirtilen dosya adı bir takma addır |
7 Excel'de VBA DIR İşlevini Kullanma Örnekleri
Açıklamadan şunu anlamış olabilirsiniz VBA DIR fonksiyonu, verilen yol adından dosya adını sağlar. Bunu örnekle anlayalım. Burada bir dizin oluşturduk Exceldemy_Folder Bu klasörde farklı küçük klasörler ve dosyalar bulunmaktadır.
1. Yol'dan Dosya Adını Bulun
Klasörümüzde, dosya adı yolunu bildirerek belirli bir dosyayı bulabiliriz.
Dosyanın yolunu kopyaladıktan sonra kodu çalıştırmanız gerekir.
Bu nedenle, aşağıdaki adrese gidin Geliştirici sekme>> seç Visual Basic . Sonra şuraya git Ekleme tab>> seçin Modül. İçinde Genel iletişim kutusuna kodu yazıyoruz.
Bizim gündemimiz Dosya adı yol adından, tam yol adını (en kökten dosyaya kadar) ayarlayacağız ve kodumuz şöyle olacak
Sub FileNames() Dim FN As String FN = Dir("E:\Exceldemy\Sales_of_January.xlsx") MsgBox FN End Sub
Burada kodumuz içinde yol adını şu şekilde ayarladık E:\Exceldemy\Sales_of_January.xlsx
Kod Dökümü:
- Başlangıçta, şu adda bir dize değişkeni bildirdik FN . ve çıktısı Dir işlevi bu değişkene kaydedilmiştir.
- Daha sonra Dir işlevi dosya adını bulur ve sağlanan yoldan döndürür.
- O zaman MsgBox mesaj kutusu aracılığıyla çıktıyı ayarlar. MsgBox bir mesaj kutusu kullanarak çıktı döndürür.
- Ardından, kodu şu şekilde çalıştırın F5 Anahtar.
Son olarak, şu isimli dosyayı bulduk Ocak_Satışları.xlsx .
2. Bir Dizinin Varlığını Kontrol Edin
kullanarak bir dizinin varlığını kontrol edebiliriz. Dir fonksiyonunun olup olmadığını kontrol etmek için kodu yazalım. Exceldemy Aşağıdaki kodu genel kutuya yazın ve F5 Anahtar.
Sub CheckFile() Dim PN As String Dim File As String PN = "E:\Exceldemy" File = Dir(PN, vbDirectory) If File "" Then MsgBox File & " exists" Else MsgBox "The file doesn't exist" End If End Sub
Kod Dökümü:
- İki değişken bildirdik; PN kontrol dizinimizin tam yol adını içerir.
- İşte burada Dir fonksiyonunda, yol adı ve öznitelik değeri olmak üzere iki değer ayarladık vbDirectory Bu öznitelik değeri dizinin tespit edilmesine yardımcı olacaktır. Ve bu fonksiyonun çıktısı Dosya değişken.
- Daha sonra değişkenin boş olup olmadığını kontrol ettik. Değişkenin boş olmadığını tespit edersek, bir mesaj kutusu aracılığıyla dizinin varlığını bildiririz, aksi takdirde dönüş mevcut değildir.
İşte, burada Exceldemy dizini var, bu yüzden " Exceldemy var ", burada Exceldemy klasörün adıdır.
3. Mevcut Olmayan Bir Klasör Oluşturun
Bilgisayarınızda var olmayan bir klasör oluşturabilirsiniz. Bunun için klasörlerinizde var olmayan bir yol adı oluşturmanız gerekir. Şöyle bir dizin oluşturacağımızı düşünelim Exceldemy_1 . Biz kullanacağız MkDir komutunu kullanarak dizini oluşturabiliriz, ancak bundan önce aşağıdakileri yazmamız gerekir VBA Kod.
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
Burada, dizindeki yol adını kullanarak dizini oluşturmak için bir komut yazdık Başka kodumuzun bloğu. Koşmak kodu ile F5 Anahtar.
Dizin oluşturuldu. Şimdi dizin klasörüne bakalım. Exceldemy_1 klasörü artık bilgisayarınızda görünür durumdadır.
Benzer Okumalar:
- Excel'de VBA'da Bir Sub Nasıl Çağrılır (4 Örnek)
- VBA İşlevinde Değer Döndürme (Hem Dizi Hem de Dizi Olmayan Değerler)
- Excel'de VBA UCASE İşlevini Kullanma (4 Örnek)
- Excel'de VBA'da TRIM Fonksiyonu Nasıl Kullanılır (Tanım + VBA Kodu)
4. Bir Dizindeki İlk Dosyayı Bulma
Birincil görevi Dir fonksiyonu, verilen dizindeki ilk dosyayı bulmak içindir. Fonksiyonun içinde sağlamanız gereken tek şey yol adıdır (konteyner dizinine kadar) ve bu dizindeki ilk dosyayı döndürecektir.
Bizim dosyamızdan ilk dosyayı bulalım Exceldemy dizini. Kodumuz şöyle olacak
Sub FirstFileinFolder() Dim FN As String Dim PN As String PN = "E:\Exceldemy\" FN = Dir(PN) MsgBox "İlk Dosya: " & FN End Sub
Temel kodu görebilirsiniz; yol adını Dir Şimdi. Koşmak kodu ile F5 tuşuna bastığınızda, bu dizindeki ilk dosyayı bulacaksınız.
5. Bir Dizindeki Tüm Dosyaları Bulma
Önceki bölümde, bir dizindeki ilk dosya adının nasıl bulunacağını gördük. Belirli bir dizindeki tüm dosyaları bulmanız gerektiğinde durum ortaya çıkabilir. Belirli bir dizindeki tüm dosyaları bulmak için aşağıdakileri yazmanız gerekir VBA Kod.
Sub AllFile() Dim FN As String Dim FL As String FN = Dir("E:\Exceldemy\") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("Dosya Listesi:" & FL) End Sub
Dosya adlarını tek bir değişken olarak saklamak için iki değişken ( FN ) ve bir liste olarak ( FL ). Süre Yap döngüsü dizinde hiçbir dosya kalmayana kadar yinelenir, bu döngüyü kullanarak her dosya adını FL değişken.
Kodu çalıştırdığınızda, aşağıdaki resimde olduğu gibi dizindeki tüm dosyaları bulacaksınız.
6. Bir Dizindeki Tüm Dosyaları ve Klasörleri Bulma
Bir önceki bölümde tüm dosyaları nerede bulabileceğimizden bahsetmiştik. Bir klasördeki tüm alt klasörleri de bulabiliriz. Bunu yapmak için aşağıdakileri yazın VBA kodu aşağıda eklenmiştir.
Sub AllFileFolders() Dim AN As String Dim Lst As String AN = Dir("E:\Exceldemy_Folder\", vbDirectory) Do While AN "" Lst = Lst & vbNewLine & AN AN = Dir() Loop MsgBox ("Dosya Lst:" & Lst) End Sub
Kodumuzdaki değişiklik sadece öznitelik parametrelerinin kullanılmasıdır. vbDirectory o alanda. Koşmak kodunun tüm dosyalarını ve alt klasörlerini bulacaksınız. Exceldemy_Folder .
7. Belirli Bir Türe Ait Tüm Dosyaları Bulma
Kullanarak VBA Dir fonksiyonu ile herhangi bir dosya türünü bulabiliriz. Bir örnekle inceleyelim.
Bulacağız .csv dizinimizdeki dosyalar. Kodumuz aşağıdaki gibi olacaktır-
Sub SpecialTypeFiles() Dim FL As String Dim FN As String FN = Dir("E:\Exceldemy_Folder\Exceldemy\*.csv") Do While FN "" FL = FL & vbNewLine & FN FN = Dir() Loop MsgBox ("List of .csv Files:" & FL) End Sub
Dosyaları bulmak için benzer bir mekanizma kullanan kodu anladığınızı umuyoruz. Yol adında bir joker karakter kullandık ( * ). Bu yıldız işareti (*) herhangi bir sayıya kadar herhangi bir karakterin oluşabileceğini belirtir. Joker karakter, dosya adının herhangi bir şey olabileceği ancak bir .csv Dosya.
Kodu çalıştırdığınızda, aşağıdaki kodu döndürecektir .csv dosyalarımızdan Exceldemy dizin.
Uygulama Bölümü
Pratik yapmanız için sağ taraftaki her sayfada bir alıştırma bölümü sağladık. Lütfen kendi başınıza yapın.
Sonuç
Bugünkü oturumla ilgili her şey bu kadar. VBA Dir Herhangi bir sorunuz veya öneriniz varsa lütfen yorumlar bölümünde bize bildirin. Daha iyi anlamak için lütfen uygulama sayfasını indirin. Web sitemizi ziyaret edin, Exceldemy tek noktadan Excel çözüm sağlayıcısı, çeşitli Excel yöntemleri hakkında bilgi edinmek için. Bu makaleyi okurken gösterdiğiniz sabır için teşekkür ederiz.