VBA IsEmpty işlevi, Excel'in Visual Basic for Applications (VBA) modülünde bulunan doğal bir araçtır. Belirli bir hücrede olup olmadığını belirlemek için özel olarak tasarlanmıştır. İşlev, True veya False olabilen bir Boole sonucu üretir. Belirlenen hücre boşsa, işlev True çıktısı verir; diğer yandan, hücre bir değer veya formül içeriyorsa, False döndürür.
Bir örneğe bakalım. Bu örnekte, belirli bir hücrenin, bu durumda "A1"in boş olup olmadığını kontrol etmek için VBA IsEmpty işlevini kullanacağız. 'Example1' adlı bu alt yordamda, IsEmpty işleviyle birleştirilmiş bir 'If' ifadesi, A1 hücresinin durumunu değerlendirir.

İşlev, hücrenin boş olduğunu belirten 'True' değerini döndürürse, "Hücre boş" metninin bulunduğu bir ileti kutusu görüntülenir. Alternatif olarak, işlev, hücrenin boş olmadığını belirten 'False' değerini döndürürse, "Hücre boş değil" metninin bulunduğu farklı bir ileti kutusu görüntülenir.

- VBA IsEmpty fonksiyonu bir hücrenin veya Variant türündeki bir değişkenin boş veya başlatılmamış olup olmadığını belirler.
- VBA IsEmpty Column prosedürünü kullanırken, VBA IsEmpty işlevinin hücreleri tek tek, toplu olarak, bir sütun olarak değil, kontrol ettiğini hatırlamak önemlidir. Tüm bir sütunu değerlendirmek için her hücreyi yineleyen bir döngü yapısı uygulamanız gerekir.
- VBA'da boş bir dizeyi kontrol etmek için, VBA IsEmpty String prosedüründen ziyade 'Len' fonksiyonunu veya doğrudan karşılaştırmayı kullanmak daha etkilidir.
- Fonksiyon, bir değişkenin veya hücrenin boş olup olmamasına bağlı olarak farklı kod bloklarını yürütmek için If koşullarıyla birleştirilebilir.
VBA'da IsEmpty Fonksiyonu Ne İşe Yarar?
VBA IsEmpty işlevinin temel görevi, belirli bir değişkenin başlatılıp başlatılmadığını tespit etmektir. Bunu yaparak, başlatılmamış bir değişken kullanıldığında ortaya çıkabilecek çalışma zamanı hatalarının oluşmasını önlemeye yardımcı olur. Bu nedenle, işlev olası yürütme hatalarını önlemede önemli bir varlıktır.
VBA'da IsEmpty Fonksiyonu Nasıl Kullanılır?
VBA'da IsEmpty fonksiyonunun kullanımı aşağıdaki adımları içerir:
Adım 1: Yeni bir Excel çalışma kitabında, Excel'de “ALT + F11” tuşlarına basarak Visual Basic for Applications (VBA) düzenleyicisini açın.

Adım 2: VBA Editör'de kodunuzu yazmak için yeni bir modül oluşturursunuz. Bu, menüden Ekle'yi seçip ardından Modül'ü seçerek yapılabilir.

Adım 3: Bu yeni modül içerisinde kodunuzu yazmaya başlayın. Sub ile başlar ve ardından alt rutininize vermek istediğiniz ad gelir.
Adım 4: Alt rutinde belirli bir hücrenin veya değişkenin boş olup olmadığını test etmek için IsEmpty işlevini kullanın. Boşsa, işlev True döndürür; aksi takdirde False döndürür.
Adım 5: IsEmpty ile kontrol ettikten sonra, koşul True (hücre veya değişken boş) ise belirli kodu çalıştırmak için IsEmpty fonksiyonuyla birlikte bir If ifadesi kullanırsınız ve isteğe bağlı olarak koşul False (hücre veya değişken boş değil) ise başka bir kod çalıştırırsınız.
Adım 6: Kodunuz hazır olduğunda, alt rutininizi çalıştırabilirsiniz. Bu, alt rutininizi seçerken VBA Editörü içinde F5'e basarak yapılabilir.
Örnekler
IsEmpty'nin nasıl kullanılacağına dair birkaç örneğe bakalım.
Örnek 1: IsEmpty Fonksiyonunun Temel Kullanımı
Diyelim ki Excel'de bazı hücrelerin boş olduğu büyük verilerimiz var. Boş hücrelerin tam listesini manuel olarak bilmek sıkıcı olurdu.

Bu nedenle, belirtilen aralıktaki tüm boş hücreleri listeleyen ve VBA IsEmpty aralık fonksiyonunun faydasını etkili bir şekilde gösteren bir kod yazacağız.
Adım 1: Yeni modülde, 'Example4' adında yeni bir alt rutin tanımlayarak koda başlıyoruz.

Adım 2: Bu satırda, inceleyeceğimiz aralıktaki her bir hücreyi ifade eden 'hücre' adında yeni bir değişken tanımlıyoruz.

Adım 3: Burada, tüm boş hücrelerin adreslerini tutacak olan 'emptyCells' adlı bir dize değişkeni tanımlıyoruz.

Adım 4: Daha sonra A1'den K35'e kadar her hücre üzerinde yineleme yapacak bir döngü başlatıyoruz.

Adım 5: Mevcut hücrenin boş olup olmadığını IsEmpty fonksiyonunu kullanarak kontrol etmek için “If IsEmpty(cell) Then” koşulunu kullanırız. Boşsa, bir sonraki satıra geçeceğiz.

Adım 6: Bu kod satırında, geçerli hücrenin boş olup olmadığını kontrol ediyoruz. Eğer öyleyse, adresi 'emptyCells' dizesine, ayırma için virgül ve boşlukla birlikte ekliyoruz.

Adım 7: Burada, Excel'in aralıktaki bir sonraki hücreye geçmesini sağlamak için "Sonraki hücre" komutunu kullanıyoruz ve aralıktaki tüm hücreler incelenene kadar If ifadesine dönüyoruz.

Adım 8: ' emptyCells ' dizesinin herhangi bir içeriğe sahip olup olmadığını (yani, herhangi bir boş hücre bulunup bulunmadığını) kontrol etmek için " If Len(emptyCells) > 0 Then" koşulunu kullanırız . Eğer varsa, bir sonraki satıra geçeriz.

Adım 9: Bu satırda, 'emptyCells' dizesinden öndeki virgülü ve boşluğu temizleyeceğiz.

Adım 10: Son olarak, aralıktaki tüm boş hücrelerin adreslerini listeleyen bir mesaj kutusu görüntülemek için “Msgbox” fonksiyonunu kullanacağız.

Adım 11: VBA makrosunu kaydedin ve VBE düzenleyicisini kapatın. “Makro” iletişim kutusunu açmak için “ALT + F8” tuşlarına basın. Listeden “Example4” makrosunu seçin ve “Çalıştır”a tıklayın.

Adım 12: Kodu çalıştırdığınızda tüm boş hücrelerin bulunduğu bir mesaj kutusu göreceksiniz.

İşte kodun tamamı.
Sub Example4()
Dim cell As Range
Dim emptyCells As String
For Each cell In Range(“A1:K35”)
If IsEmpty(cell) Then
emptyCells = emptyCells & “, ” & cell.Address
End If
Next cell
If Len(emptyCells) > 0 Then
emptyCells = Mid(emptyCells, 3) ‘ Remove leading comma and space
End If
MsgBox “Empty cells: ” & emptyCells
End Sub
Örnek 2: IsEmpty Fonksiyonunun Bir If Koşuluyla Birleştirilmesi
Bu örnek, bir hücre aralığının boş olup olmadığını belirlemek için IsEmpty işlevinin bir If koşuluyla nasıl birleştirilebileceğini göstermektedir.
Adım 1: Yeni modüllerde, 'Example2' adında yeni bir alt rutin tanımlayarak koda başlıyoruz.

Adım 2: Bir sonraki satırda 'hücre' adında yeni bir değişken bildiriyoruz. Bu değişken, kontrol etmek istediğimiz aralıktaki her hücre için bir yer tutucu olarak kullanılacaktır.

Adım 3: Sonra, “A1:A10 Aralığındaki Her Hücre İçin” VBA döngüsünü oluşturmak için bir kod yazıyoruz . Bu satır, A1'den A10'a kadar her hücreden geçen bir döngüyü başlatır.

Adım 4: Bu satırda, geçerli hücrenin ('hücre' değişkeni tarafından tutulan) boş olup olmadığını kontrol edecek olan "If IsEmpty(cell) Then" kodunu yazıyoruz. Boşsa, Excel bir sonraki satıra geçecektir.

Adım 5: Burada bir mesaj kutusu oluşturuyoruz. Mevcut hücre boşsa, Excel hücrenin adresini ve boş olduğunu belirten bir mesaj kutusu görüntüler.

Adım 6: Bu satırda, başlangıç koşulunun (geçerli boş hücre) karşılanmaması durumunda Excel'i alternatif bir eylem yoluna yönlendiren "Else" koşulunu kullanıyoruz.

Adım 7: Burada başka bir mesaj kutusu için kod yazıyoruz. Mevcut hücre herhangi bir veri içeriyorsa, Excel hücrenin adresini ve boş olmadığını belirten bir mesaj kutusu görüntüler.

Adım 8: Bu satıra, Excel'e aralıktaki bir sonraki hücreye gitmesini söyleyen "Sonraki hücre" yazıyoruz ve bu, aralıktaki tüm hücreler değerlendirilene kadar döngüyü If ifadesine geri getiriyor.

Adım 9: VBA makrosunu kaydedin ve VBE düzenleyicisini kapatın. “Makro” iletişim kutusunu açmak için “ALT + F8” tuşlarına basın. Listeden “Example2” makrosunu seçin ve “Çalıştır”a tıklayın.

Adım 10: Makroyu çalıştırdığınızda aşağıdaki sonucu elde edersiniz.

İşte tam kod:
Sub Example2()
Dim cell As Range
For Each cell In Range(“A1:A10”)
If IsEmpty(cell) Then
MsgBox “Cell ” & cell.Address & ” is empty”
Else
MsgBox “Cell ” & cell.Address & ” is not empty”
End If
Next cell
End Sub
Örnek 3: IsEmpty Fonksiyonuna Bir Alternatif
Bazen, Len işlevi IsEmpty işlevine bir alternatif olabilir. Bu örnek, bir hücrenin (A1) boş olup olmadığını belirlemek için Len excel işlevinin nasıl kullanılacağını gösterir.
Adım 1: Yeni modülde ilk olarak 'Example3' adında bir alt rutin oluşturarak başlıyoruz.

Adım 2: Bir sonraki satırda bir if koşulu sağlıyoruz “If Len(Range(“A1”).Value) = 0 Then”. Bu satır A1 hücresindeki değerin uzunluğunu kontrol edecektir. 0 ise, bu hücrenin boş olduğu anlamına gelir ve Excel bir sonraki satıra geçecektir.

Adım 3: Sonra bir mesaj kutusu oluşturuyoruz. A1 hücresindeki değer uzunluğu 0 ise (yani hücre boşsa), Excel “Hücre boş” metnini içeren bir mesaj kutusu görüntüler.

Adım 4: Burada, başlangıç koşulunun (A1 hücresindeki değerin uzunluğu 0) karşılanmaması durumunda alternatif bir eylem yolunu işaret eden "Else" koşulunu kullanıyoruz.

Adım 5: Sonra, başka bir mesaj kutusu oluşturuyoruz. A1 hücresindeki değer uzunluğu 0'dan başka bir şeyse (yani hücre veri içeriyorsa), Excel "Hücre boş değil" metnini içeren bir mesaj kutusu görüntüler.

Adım 6: Makroyu kaydedin ve VBE düzenleyicisini kapatın. “Makro” iletişim kutusunu açmak için “ALT + F8” tuşlarına basın. Listeden “Example3” makrosunu seçin ve “Çalıştır”a tıklayın.

Adım 7: Makroyu çalıştırdığınızda şunu göreceksiniz:

İşte tam kod:
Sub Example3()
If Len(Range(“A1”).Value) = 0 Then
MsgBox “Cell is empty”
Else
MsgBox “Cell is not empty”
End If
End Sub
