Eğer excel dosyası üzerinden bir dosya ya da klasör yolunun var olup olmadığının kontrolünü formül ile yapmak isterseniz bu kod size alternatif olabilir.
Option Explicit
Function YOL_VAR_MI(yol) As Boolean
Dim x As String
On Error Resume Next
x = GetAttr(yol) And 0
If Err = 0 Then
YOL_VAR_MI = True
Else
YOL_VAR_MI = False
End If
End Function
Option Explicit
Function YOL_VAR_MI(yol) As Boolean
Dim x As String
'--------------------------------------------------
'Hatayla karşılaştığında o noktada durmak
've hata vermek yerine sonraki satırdan
'çalışmaya devam et.
'--------------------------------------------------
On Error Resume Next
'--------------------------------------------------
'Burada bitwise operatör kullanımı yapılmış.
'Örneğin eğer belirtilen yol bulunamazsa bu satır
'hata verecek ve kod çalışmayı burada durduracak.
'On Error Resume Next ile çalışmayı devam
'ettiriyoruz ama bunun için önlem de alıyoruz.
'Mesela yol bulunamasaydı Runtime error '76' hatası
'verecekti, bu şekilde çözmedik ama savuşturmuş olduk.
'Neyse, şimdi bu GetAttr bize Integer bir sonuç üretiyor.
'Ayrıca bu GetAttr ile alabileceği değerlerin kombinasyonunu
'da üretebiliyorsunuz. Sıfırın olayı da muhtemelen vbNormal
'sabitine denk geliyor olması.
'Mesela vbDirectory olduğunda 16 sabit sonucunu verecek
'kod aynı zamanda sistem klasörü ise 4 sabit sonucunu da
'ekleyip 20 sonucunu verebiliyor.
'--------------------------------------------------
x = GetAttr(yol) And 0
'--------------------------------------------------
'Şimdi burada alakasız bir şekilde Err kullanılmış
'olması kafanızı karıştırmış olabilir, açıklayalım.
'Bu Err = 0 şu anlama geliyor. Hata yoksa anlamında,
'eğer sıfırdan farklı ise hata olduğunu anlıyoruz.
'--------------------------------------------------
If Err = 0 Then
YOL_VAR_MI = True
Else
YOL_VAR_MI = False
End If
End Function