Belirli bir dosyanın her yerde bulunup bulunmadığını bulmak için VBA FileExists işlevini kullanırız. Dosya varsa, True döndürür; aksi takdirde False döndürür. VBA'da dosya işlemleriyle çalışırken, bu işlev özellikle yararlıdır çünkü geliştiricilerin bir dosyanın mevcut olup olmadığına bağlı olarak farklı eylemler gerçekleştirmesini sağlar. Bir örneğe bakalım.

Bu örnekte, “C:\Users\Vikram\Desktop\VBA FileExists.docx” konumunda bulunan “VBA FileExists.docx” adlı bir Word belgesini kontrol ediyoruz. VBA FileExists işlevi belirtilen dosya yoluyla çağrılır ve dönüş değerine göre “File exists!(dosya var) ” veya “File does not exist!(dosya mevcut değil)” “ Debug.Print ” kullanılarak Anlık pencereye yazdırılır.

- VBA FileExists fonksiyonu belirtilen bir dosyanın varlığını kontrol eder.
- Joker karakterler için “Dir” fonksiyonunu, daha gelişmiş dosya işlemleri için ise FileSystemObject fonksiyonunu kullanın.
- VBA FileExists'i çağırdığınızda, bir Boole değeri döndürür (dosya varsa True, yoksa False), bu da dosyanın varlığına bağlı olarak kodunuzda basit koşullu mantığın kullanılmasını sağlar.
- VBA FileExists'in InputBox gibi kullanıcı girdi mekanizmalarıyla birleştirilmesi, etkileşimli VBA uygulamalarını teşvik ederek kullanıcıların belirli dosyaların varlığını doğrulamalarına ve sonuca göre uygun eylemleri gerçekleştirmelerine olanak tanır.
Sözdizimi
VBA FileExists fonksiyonunun sözdizimi basittir.
FileExists(PathName As String) As Boolean
- PathName : Kontrol etmek istediğiniz dosyanın yolunu ve adını belirtir.
VBA FileExists Fonksiyonu Nasıl Kullanılır?
VBA'da FileExists fonksiyonunu kullanmak birkaç basit adımdan oluşur.
Adım 1: Excel'i açın ve VBA düzenleyicisini açmak için ALT + F11 tuşlarına basın .

Adım 2 : Menüde “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

Adım 3: Dosya yolunu ve FileExists fonksiyonunun sonucunu tutacak değişkenleri bildirerek başlayın.
Örneğin:
Dim filePath'i As String
Dim fileExistsResult'u As Boolean
Adım 4: Varlığını kontrol etmek istediğiniz dosyanın konumunu belirterek dosya yolunu filePath değişkenine atayın.
Örneğin:
filePath = “C:\Example\File.txt”
Adım 5: Dosya yolunu bir argüman olarak geçirerek FileExists fonksiyonunu çağırın. Bu fonksiyon, dosyanın var olup olmadığını belirten bir Boolean değeri döndürecektir.
Örneğin:
fileExistsResult = FileExists(filePath)
Adım 6: Sonuç elde edildikten sonra, dosyanın var olup olmamasına göre ilerleyebilirsiniz. Genellikle bu, If…Else gibi koşullu ifadelerin kullanılmasını içerir .
Örneğin:
If fileExistsResult Then
‘ File exists, perform desired actions
MsgBox “File exists!”
Else
‘ File does not exist, handle accordingly
MsgBox “File does not exist!”
End If
Adım 7: Makroyu F5 tuşuna basarak veya menüden Çalıştır'ı tıklayarak çalıştırın .
Örnekler
VBA FileExists fonksiyonunun etkili bir şekilde nasıl kullanılacağını anlamak için birkaç örneği inceleyelim.
Örnek 1
Bu örnekte, belirtilen yolda bir dosyanın bulunup bulunmadığını belirten bir ileti kutusu görüntülemek için özel olarak tanımlanmış bir VBA FileExists işlevini nasıl kullanacağımızı göreceğiz .
Adım 1: İlk olarak, girdi olarak bir dosya yolu kabul eden ve dosya varsa True, yoksa False döndüren FileExists adında bir fonksiyon tanımlayın.

Adım 2: Daha sonra belirtilen yolda bir dosyanın olup olmadığını kontrol etmek için Dir(filePath) fonksiyonunu kullanırız.

Adım 3: Fonksiyon oluşturulduktan sonra, yeni bir alt rutin tanımlayacağız ve ardından FileExists fonksiyonunun sonucunu depolamak için VBA'da FileExistsResult adında bir Boole değişkeni tanımlayacağız.

Adım 4: Bu satırda belirtilen dosya yolu ile FileExists fonksiyonunu çağırıyoruz.
Fonksiyon, dosyanın belirtilen konumda bulunup bulunmadığını kontrol eder ve True veya False değerini döndürür; bu değer daha sonra FileExistsResult değişkeninde saklanır.

Adım 5: Sonra, FileExistsResult değerini kontrol ediyoruz. True ise, yani dosya mevcutsa, bu satır “Dosya mevcut!” metninin bulunduğu bir mesaj kutusu görüntüler.

Adım 6: FileExistsResult değeri False ise, yani dosya mevcut değilse, bu satırda “Dosya mevcut değil!” metninin bulunduğu bir mesaj kutusu görüntülenir.

Adım 7: VBA makrosunu kaydedin . Bu kodu çalıştırdığınızda, “C:\Users\Vikram\Desktop\VBA FileExists.docx” dosyasının var olup olmadığını kontrol eder. Eğer varsa, “Dosya var!” mesajını veren bir ileti kutusu görüntüler. Eğer yoksa, “Dosya yok!” mesajını veren bir ileti kutusu görüntüler.

İşte tam kod:
Function FileExists(filePath As String) As Boolean
FileExists = Dir(filePath) <> “”
End Function
Sub Example1()
Dim fileExistsResult As Boolean
fileExistsResult = FileExists(“C:\Users\Vikram\Desktop\VBA FileExists.docx”)
If fileExistsResult Then
MsgBox “File exists!”
Else
MsgBox “File does not exist!”
End If
End Sub
Örnek 2 – IF Koşullu DIR
Bu örnekte, belirtilen yoldaki bir dosyayı getirmek, dosyanın var olup olmadığını kontrol etmek ve bu bilgiyle bir ileti kutusu görüntülemek için yerleşik Dir fonksiyonunun nasıl kullanılacağını göreceğiz.
Adım 1: İlk olarak “Example2” adında yeni bir alt rutin tanımlıyoruz.

Adım 2: Bu satır, dosya yolunu depolamak için String türünde filePath adlı bir değişken tanımlar.

Adım 3: Bu adımda, belirtilen yolda bir dosyanın var olup olmadığını kontrol etmek için “ Dir” fonksiyonunu kullanırız . Dir boş olmayan bir dize döndürürse, dosyanın var olduğu anlamına gelir.

Adım 4: Şimdi sonucu görüntülemek için mesaj kutusu fonksiyonunu kullanacağız.
- MsgBox “Dosya var!” : Eğer dosya varsa, bu satır “Dosya var!” metninin yer aldığı bir mesaj kutusu görüntüler.
- MsgBox “Dosya Yok!” : Eğer dosya yoksa, bu satırda “Dosya Yok!” yazılı bir mesaj kutusu görüntülenir.

Adım 5: Bu kodu çalıştırdığınızda, filePath değişkeni tarafından belirtilen dosyanın var olup olmadığını kontrol eder. Var ise, "Dosya var!" mesajını veren bir ileti kutusu görüntüler. Yok ise, "Dosya yok!" mesajını veren bir ileti kutusu görüntüler.

İşte tam kod:
Sub Example2()
Dim filePath As String
filePath = “C:\Example\File.txt”
If Dir(filePath) <> “” Then
MsgBox “File exists!”
Else
MsgBox “File does not exist!”
End If
End Sub
Örnek 3
Bu örnekte, kullanıcıdan dosya konumunu istiyoruz ve ardından ileti kutusunda sonucu görüntülemeden önce verilen dosyanın var olup olmadığını belirlemek için VBA'daki Dir fonksiyonunu kullanıyoruz.
Adım 1: Yeni altyordamı oluşturduktan sonra “inputFile” ve “fileExistsResult” adlı iki değişken tanımlanır.
“inputFile” kullanıcı girdisi dosya yolunu depolayacakken, “fileExistsResult” Dir fonksiyonunun sonucunu depolayacaktır.

Adım 2: Bu adımda, kullanıcıdan varlığını kontrol etmek istediği dosyanın yolunu girmesini isteyen bir giriş kutusu görünmesini sağlıyoruz. Girilen dosya yolu inputFile değişkeninde saklanır.

Adım 3: Önceki örnekte olduğu gibi Dir fonksiyonu inputFile ile belirtilen dosyanın var olup olmadığını kontrol etmek için kullanılır.
Sonuç, varsa dosya adı, yoksa boş bir dize olan fileExistsResult değişkeninde saklanır.

Adım 4: fileExistsResult değerine göre dosya varlığı kontrolünün sonucunu görüntülemek için mesaj kutusu fonksiyonunu kullanırız.
- fileExistsResult boş değilse, dosyanın var olduğunu gösterir ve “Bu Dosya Var” mesajı gösterilir.
- Aksi takdirde, fileExistsResult boşsa, bu dosyanın mevcut olmadığını gösterir ve “Bu Dosya Mevcut Değil” mesajı gösterilir.

Adım 5: Bu kodu çalıştırdığınızda, VBA'daki bir giriş kutusu sizden varlığını kontrol etmek istediğiniz dosyanın yolunu girmenizi isteyecektir.

Dosya yolunu girdikten sonra, kod dosyanın var olup olmadığını belirlemek için Dir işlevini kullanacaktır. Daha sonra, Dir işlevinin sonucuna göre dosyanın var olup olmadığını belirten bir mesaj kutusu görüntüleyecektir.

İşte tam kod:
Sub CheckFileExists()
‘ Declare variables
Dim inputFile As String
Dim fileExistsResult As String
inputFile = InputBox(“Check if this file exists:”)
fileExistsResult = Dir(inputFile)
If fileExistsResult <> “” Then
MsgBox “This File Exists”
Else
MsgBox “This File Does Not Exist”
End If
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- Varlığını kontrol ettiğiniz dosyanın uygun erişim izinlerinin ayarlandığından emin olun. Dosya izin kısıtlamaları nedeniyle erişilemezse, VBA FileExists işlevi varlığını doğru bir şekilde belirleyemeyebilir.
- VBA FileExists kullanılarak kontrol edilebilen dosya yolunun uzunluğu konusunda herhangi bir kısıtlama yoktur.
- VBA FileExists işlevine sağlanan dosya yolunun doğru ve düzgün biçimlendirilmiş olduğundan emin olun. Dosya yolundaki herhangi bir hata veya yanlışlık, dosya varlığı denetiminde yanlış sonuçlara yol açabilir.
- VBA FileExists fonksiyonu büyük/küçük harfe duyarlı değildir.
- VBA FileExists işlevi, VBA fileexists joker karakter aramaları dahil olmak üzere dosya yolu eşleştirmesi için joker karakter desenlerini barındırmaz.
