E-posta adreslerini doğrulamak için VBA Like operatörünü kullanacağımız bir örneğe bakalım. Burada, "email" değişkeninde depolanan bir e-posta adresinin biçimini doğrulamayı amaçlayan "ValidateEmail" adlı bir alt rutinimiz var. Koşul, "email" değişkeninin "@." deseniyle eşleşip eşleşmediğini kontrol eder; burada "" sıfır veya daha fazla karakterle eşleşir.
Bu desen, e-postanın bir "@" sembolü ve en az bir nokta (alan adı uzantısı için) içerdiğini doğrular. Koşul doğruysa, bir ileti kutusu "E-posta geçerli!" görüntüler; aksi takdirde, "Geçersiz e-posta biçimi" gösterir.
- VBA Like operatörü desen tabanlı dize eşleştirmesi için kullanılır. Tek ve çoklu karakterleri temsil eden “?” ve “*” gibi joker karakterleri destekler.
- Like operatörü varsayılan olarak büyük/küçük harfe duyarlı değildir. Desenlerdeki karakter aralıklarını ve kümelerini belirtmek için köşeli parantezleri “[ ]” kullanabilirsiniz.
- VBA Like operatörü beklendiği gibi davranmıyorsa kodunuzu hata ayıklayın ve büyük/küçük harf duyarlılığı için özel karşılaştırmalar kullanmayı düşünün.
- VBA Like operatörü, veri doğrulama, metin ayrıştırma ve desenlere göre veri filtreleme gibi görevler için yararlı olabilir.
VBA Benzeri Operatör Nasıl Kullanılır?
VBA Like operatörünün kullanımı aşağıdaki adımları içerir:
Adım 1: Excel çalışma kitabında ALT + F11 tuşlarına basarak Visual Basic for Applications (VBA) düzenleyicisini açın.
Adım 2: VBA düzenleyicisinin içinde, VBA kodunuzu yazabileceğiniz yeni bir modül eklemek için Ekle > Modül'e gidin.

Adım 3: Kodunuz değişkenler gerektiriyorsa, bunları bildirmek için Dim ifadesini kullanın. Değişkenler, karşılaştırmak istediğiniz değerleri tutmak için kullanılır.
Örneğin:
Dim firstName As String
Dim lastName As String
Adım 4: VBA kodunuzda, dizeleri karşılaştırmak için VBA Like operatörünü kullanın. Eşleştirmek istediğiniz deseni tanımlayın, “?” (tek bir karakterle eşleşir) ve “*” (sıfır veya daha fazla karakterle eşleşir) gibi joker Excel karakterlerini dahil edin.
Örneğin:
If firstName Like “J*n” Then
Adım 5: Genellikle, karşılaştırmanın bir eşleşme ile sonuçlanıp sonuçlanmadığını belirlemek için If…Then…Else gibi koşullu ifadelerde VBA Like operatörünü kullanırsınız.
Örneğin:
If firstName Like “J*n” Then
MsgBox “First name matches the pattern!”
Else
MsgBox “First name does not match the pattern.”
End If
Adım 6: Karşılaştırmayı VBA Like operatörünü kullanarak yürütmek için VBA kodunuzu çalıştırın . Kodunuz, koşula bağlı olarak istenen çıktıyı üretecek veya belirli eylemler gerçekleştirecektir.
Örnekler
Örnek 1 – Soru İşaretiyle
Bu örnekte, “?” joker karakteri herhangi bir tek karakterle eşleşir, bu nedenle “a?ple” “apple” ile eşleşir.
Adım 1: Yeni modülde ilk olarak “Example1” adında bir VBA alt rutini tanımlıyoruz.
Adım 2: Daha sonra “Dim” ifadesini kullanarak “str” adında bir dize değişkeni tanımlıyoruz.
Adım 3: Burada, “apple” dizesini “str” değişkenine atıyoruz.
Adım 4: Bu satır, VBA'da koşullu yürütme için kullanılan bir "If" ifadesinin başlangıcıdır.
Kontrol edilen koşul, “str” değişkeninin değerinin “a?ple” deseniyle eşleşip eşleşmediğidir.
“a?ple” kalıbı, “?” işaretinin herhangi bir tek karakteri temsil ettiği bir kalıptır.
Adım 5: Adım 4'teki koşul doğruysa (bir eşleşme bulunursa), bu satırda "Eşleşme bulundu!" metninin bulunduğu bir ileti kutusu görüntülenir.
Adım 6: Adım 4'teki koşul yanlışsa (eşleşme bulunamazsa), bu satır kodun aşağıdaki kod bloğunu (bu durumda bir sonraki adımdaki MsgBox) yürütmesi gerektiğini belirtir.
Adım 7: Adım 4'teki koşul yanlışsa, bu satırda "Eşleşme bulunamadı!" metnini içeren bir ileti kutusu görüntülenir.
Adım 8: VBA makrosunu kaydedin ve çalıştır'a tıklayın.
Kod çalıştırıldığında, "Eşleşme bulundu!" metninin bulunduğu bir mesaj kutusu görüntülenecektir çünkü "apple" dizesi, "a?ple" deseniyle eşleşirken, "?" herhangi bir tek karakteri temsil eder.
İşte tam kod:
Sub Example1()
Dim str As String
str = “apple”
If str Like “a?ple” Then
MsgBox “Match found!”
Else
MsgBox “No match found.”
End If
End Sub
Örnek 2 – Yıldız İşaretiyle
Bu örnekte, "" joker karakteri sıfır veya daha fazla karakterle eşleşir. Yani, "bnana" "banana" ile eşleşir.
Adım 1: Yeni modülde “Example2” adında bir VBA alt rutini tanımlıyoruz.
Adım 2: Daha sonra, “str” adlı bir dize değişkeni bildirmek için “Dim” ifadesini kullanırız.
Adım 3: Burada, “str” değişkenini “banana” dizesini içerecek şekilde ayarlıyoruz.
Adım 4: Bu satır, kodu koşullu olarak yürütme amacına hizmet eden bir “If” ifadesini başlatır.
“str” değişkeninin içeriğinin “bnana” örüntüsüne uygun olup olmadığını değerlendirir; burada “” sıfır veya daha fazla karakterin olası varlığını belirtir.
Adım 5: Adım 4'teki koşul doğruysa (bir eşleşme bulunursa), bu satırda "Eşleşme bulundu!" metninin bulunduğu bir ileti kutusu görüntülenir.
Adım 6: Adım 4'teki koşul yanlışsa (eşleşme bulunamazsa), bu satır kodun aşağıdaki kod bloğunu (bu durumda bir sonraki adımdaki MsgBox) yürütmesi gerektiğini belirtir.
Adım 7: Adım 4'teki koşulun yanlış olması durumunda, bu satırda "Eşleşme bulunamadı!" metnini içeren bir ileti kutusu görüntülenir.
Adım 8: Makroyu kaydedin ve kodu çalıştırın. Çalıştırıldığında, kod “Eşleşme bulundu!” metniyle bir mesaj kutusu görüntüler çünkü “banana” dizesi “bnana” deseniyle eşleşir, burada “” sıfır veya daha fazla karakteri temsil eder ve “b”den sonra herhangi bir karakterin görünmesine izin verir.
İşte tam kod:
Sub Example2()
Dim str As String
str = “banana”
If str Like “b*nana” Then
MsgBox “Match found!”
Else
MsgBox “No match found.”
End If
End Sub
Örnek 3 – Parantezlerle []
Bu örnekte, “[1-5]” 1 ile 5 arasındaki herhangi bir tek rakamla eşleşir, bu nedenle “[1-5]2345” “12345” ile eşleşir.
Adım 1: Yeni modülde ilk olarak “Example3” adında bir VBA alt rutini tanımlıyoruz.
Adım 2: “str” olarak adlandırılan bir dize değişkeni oluşturuyoruz.
Adım 3: “12345” dizesini “str” olarak etiketlenen değişkene tahsis ediyoruz.
Adım 4: Bu satır, belirli bir koşulu içeren bir “Eğer” ifadesini başlatır.
Bu koşul, “str” içeriğinin “[1-5]2345” deseniyle uyumlu olup olmadığını değerlendirir; burada “[1-5]” 1 ile 5 arasındaki herhangi bir rakamı ifade eder.
Adım 5: Adım 4'teki koşul doğru olduğunda, bu satır "Eşleşme bulundu!" metnini içeren bir mesaj kutusu görüntüler.
Adım 6: Adım 4'teki koşul yanlışsa, bu satır kodun aşağıdaki kod bloğunu (bu durumda bir sonraki adımda VBA'daki MsgBox ) yürütmesi gerektiğini belirtir.
Adım 7: Bu satır, Adım 4'teki koşul yanlışsa "Eşleşme bulunamadı!" metninin bulunduğu bir mesaj kutusu görüntüler.
Adım 8: Makroyu kaydedin ve çalıştır'a tıklayın.
Kod çalıştırıldığında, “Eşleşme bulundu!” metninin bulunduğu bir mesaj kutusu görüntülenecektir çünkü “12345” dizesi, “[1-5]”in 1 ile 5 arasındaki herhangi bir tek rakamı temsil ettiği “[1-5]2345” deseniyle eşleşir.
İşte tam kod:
Sub Example3()
Dim str As String
str = “12345”
If str Like “[1-5]2345” Then
MsgBox “Match found!”
Else
MsgBox “No match found.”
End If
End Sub
Örnek #4 – Parantez ve Alfabelerle [AZ]
Bu örnekte, “[AZ]*” büyük harfle başlayan herhangi bir dizeyle eşleşir. “Hello123” bu desenle eşleşir.
Adım 1: Yeni modülde ilk olarak “Example4” adında bir VBA alt rutini tanımlıyoruz.
Adım 2: “str” adında bir dize değişkeni tanımlıyoruz.
Adım 3: Burada “Hello123” dizesini “str” adlı değişkene tahsis ediyoruz.
Adım 4: Bu satır, belirli bir koşulu içeren bir “Eğer” ifadesini başlatır.
Koşul, “str” içeriğinin “[AZ]” desenine uyup uymadığını değerlendirir; burada “[AZ]” herhangi bir büyük harfi, “” ise büyük harften sonra sıfır veya daha fazla karakterin olası varlığını belirtir.
Adım 5: Adım 4'teki koşul doğruysa, bu satırda "Eşleşme bulundu!" metninin bulunduğu bir mesaj kutusu görüntülenir.
Adım 6: Adım 4'teki koşul yanlışsa, bu satır kodun aşağıdaki kod bloğunu (bu durumda bir sonraki adımdaki MsgBox'ı) yürütmesi gerektiğini belirtir.
Adım 7: Bu satır, Adım 4'teki koşul yanlışsa "Eşleşme bulunamadı!" metninin bulunduğu bir mesaj kutusu görüntüler.
Adım 8: Makroyu kaydedin ve Çalıştır’a tıklayın.
Kod çalıştırıldığında, “Eşleşme bulundu!” metninin bulunduğu bir mesaj kutusu görüntülenecektir çünkü “Hello123” dizesi “[AZ]” deseniyle eşleşir; burada “[AZ]” büyük harfi temsil eder ve “” büyük harften sonra sıfır veya daha fazla karakterle eşleşir.
İşte tam kod:
Sub Example4()
Dim str As String
str = “Hello123”
If str Like “[A-Z]*” Then
MsgBox “Match found!”
Else
MsgBox “No match found.”
End If
End Sub
Dikkat Edilmesi Gereken Önemli Noktalar
- Varsayılan olarak, VBA Like operatörü VBA'da büyük/küçük harfe duyarlı değildir. Büyük/küçük harfe duyarlı hale getirmek için özel bir karşılaştırma işlevi kullanabilirsiniz.
- “?” veya “*” gibi joker karakterlerle eşleşmek istiyorsanız, kaçış karakteri olarak “” tildasını kullanabilirsiniz. Örneğin, “a?ple” “a?ple” ile eşleşir.
- Tek bir desende birden fazla joker karakter kullanabilirsiniz. Örneğin, "a*p?e" "apple" ile eşleşir.
Varsayılan olarak, VBA Like operatörü büyük/küçük harfe duyarlı değildir. Büyük ve küçük harfleri aynı şekilde ele alır. Büyük/küçük harfe duyarlı bir karşılaştırmaya ihtiyacınız varsa, kodunuzda özel mantık uygulamanız gerekir.
VBA Like operatörü dizeleri desenlerle karşılaştırmak için kullanılır. Genellikle dizeler içinde joker karakter tabanlı aramalar ve desen eşleştirme için kullanılır ve bu da onu metin ayrıştırma ve veri doğrulama gibi görevler için güçlü bir araç haline getirir.
VBA Like operatörü beklendiği gibi çalışmıyorsa, yanlış desen sözdizimi, eksik joker karakterler veya büyük/küçük harf duyarlılığı gibi olası sorunları kontrol etmelisiniz. Kodunuzu hata ayıklamak ve giriş verilerini doğrulamak sorunu tanımlamanıza ve çözmenize yardımcı olabilir.
VBA Like Operatörü: Joker karakterler kullanarak bir dizeyi bir desenle karşılaştırır. Desen tabanlı eşleştirme için kullanışlıdır.
InStr Fonksiyonu: Bir dizeyi diğerinin içinde arar ve ilk oluşumun konumunu döndürür. Daha büyük bir dizenin içindeki alt dizeleri bulmak için kullanılır ancak Like operatörü gibi joker karakterleri desteklemez.
