EXCEL VBA'DA LIKE OPERATÖRÜ

 

VBA Like operatörü, belirtilen bir desenle eşleşip eşleşmediklerini belirlemek için dizeleri karşılaştırır. Dizelerde joker karakter tabanlı aramalar yapmanıza olanak tanır ve bu da onu VBA'da dize düzenleme ve metin eşleştirme için güçlü bir araç haline getirir. Bu operatör, tek ve çoklu karakterleri temsil eden "?" ve "*" gibi joker karakterleri destekler.

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.

VBA Benzeri Operatör Örneği 1

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 Benzeri Operatör Örneği 1-1

ÖNEMLİ NOKTALAR

  • 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.

VBA Benzeri Operatör Nasıl Kullanılır - Adım 1

Adım 2: VBA düzenleyicisinin içinde, VBA kodunuzu yazabileceğiniz yeni bir modül eklemek için Ekle > Modül'e gidin.

VBA Benzeri Operatör Nasıl Kullanılır - Adım 2

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.

VBA Benzeri Örnek 1 - Adım 1

Adım 2: Daha sonra “Dim” ifadesini kullanarak “str” adında bir dize değişkeni tanımlıyoruz.

VBA Benzeri Örnek 1 - Adım 2

Adım 3: Burada, “apple” dizesini “str” değişkenine atıyoruz.

VBA Benzeri Örnek 1 - Adım 3

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.

VBA Benzeri Örnek 1 - Adım 4

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.

VBA Benzeri Örnek 1 - Adım 5

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.

VBA Benzeri Örnek 1 - Adım 6

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.

VBA Benzeri Örnek 1 - Adım 7

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.

VBA Benzeri Örnek 1 - Adım 8

İş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.

VBA Benzeri Örnek 2 - Adım 1

Adım 2: Daha sonra, “str” adlı bir dize değişkeni bildirmek için “Dim” ifadesini kullanırız.

VBA Benzeri Örnek 2 - Adım 2

Adım 3: Burada, “str” değişkenini “banana” dizesini içerecek şekilde ayarlıyoruz.

VBA Benzeri Örnek 2 - Adım 3

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.

VBA Benzeri Örnek 2 - Adım 4

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. 

VBA Benzeri Örnek 2 - Adım 5

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.

VBA Benzeri Örnek 2 - Adım 6

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.

VBA Benzeri Örnek 2 - Adım 7

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.

VBA Benzeri Örnek 2 - Adım 8

İş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.

VBA Benzeri Örnek 3 - Adım 1

Adım 2: “str” olarak adlandırılan bir dize değişkeni oluşturuyoruz.

VBA Benzeri Örnek 3 - Adım 2

Adım 3: “12345” dizesini “str” olarak etiketlenen değişkene tahsis ediyoruz.

VBA Benzeri Örnek 3 - Adım 3

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.

VBA Benzeri Örnek 3 - Adım 4

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.

VBA Benzeri Örnek 3 - Adım 5

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.

VBA Benzeri Örnek 3 - Adım 6

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.

VBA Benzeri Örnek 3 - Adım 7

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.

VBA Benzeri Örnek 3 - Adım 8

İş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.

VBA Benzeri Örnek 4 - Adım 1

Adım 2: “str” adında bir dize değişkeni tanımlıyoruz.

VBA Benzeri Örnek 4 - Adım 2

Adım 3: Burada “Hello123” dizesini “str” adlı değişkene tahsis ediyoruz.

VBA Benzeri Örnek 4 - Adım 3

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.

VBA Benzeri Örnek 4 - Adım 4

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.

VBA Benzeri Örnek 4 - Adım 5

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.

VBA Benzeri Örnek 4 - Adım 6

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.

VBA Benzeri Örnek 4 - Adım 7

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.

VBA Benzeri Örnek 4 - Adım 8

İş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

  1. 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.
  2. “?” 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.
  3. Tek bir desende birden fazla joker karakter kullanabilirsiniz. Örneğin, "a*p?e" "apple" ile eşleşir.

VBA'da like operatörü büyük/küçük harfe duyarlı mıdır?

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'da like operatörünün kullanımı nedir?

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'da like operatörü neden çalışmıyor?

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'da like ve InStr arasındaki fark nedir?

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.


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...