Dosyanın Veya Klasörün Olup Olmadığını Kontrol Et - Microsoft Excel


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.

Kod


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

Kod (Açıklamalı)


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

Yararlanılan Kaynaklar
Etiketler
microsoft excel açıklamalı içerik microsoft excel vba