VBA, mantıksal operatörleri kullanmanıza izin verir Ve, Veya, Olumsuz, Xor değerleri karşılaştırmak için. Operatörler "Boolean" olarak kabul edilir, bu da sonuç olarak True veya False döndürdükleri anlamına gelir.
Dizeleri nasıl karşılaştıracağınızı öğrenmek istiyorsanız, buraya tıklayın: VBA Dizeleri Karşılaştır - StrComp
Karşılaştırma operatörlerinin nasıl kullanılacağını öğrenmek istiyorsanız, buraya tıklayın: VBA Karşılaştırma Operatörleri - Eşit Değil ve Daha Fazlası
Ve Mantıksal Operatörünü Kullanma
NS Ve mantıksal operatör iki veya daha fazla koşulu karşılaştırır. Tüm koşullar doğruysa, operatör True değerini döndürür. Koşullardan en az biri doğru değilse, operatör False döndürür. İşte bir örnek:
123456789101112 | Tamsayı Olarak Dim intADim intB Tamsayı OlarakDim blnResult As BooleintA = 5intB = 5intA = 5 Ve intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir |
Bu örnekte, her ikisinin de olup olmadığını kontrol etmek istiyoruz. intA ve intB 5'e eşittir. Bu doğruysa, Boole değeri blnSonuç True olacak, aksi takdirde False olacaktır.
İlk olarak, değerlerini belirledik intA ve intB 5'e:
12 | intA = 5intB = 5 |
Bundan sonra, kullanıyoruz Ve Değerlerin 5'e eşit olup olmadığını kontrol etmek için If ifadesindeki operatör:
12345 | intA = 5 ve intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir |
Her iki değişken de 5'e eşit olduğundan, blnSonuç True döndürür:
Resim 1. VBA'da And mantıksal operatörünü kullanma
Veya Mantıksal Operatörü Kullanma
NS Veya mantıksal operatör iki veya daha fazla koşulu karşılaştırır. Koşullardan en az biri doğruysa, True değerini döndürür. Koşullardan hiçbiri doğru değilse, operatör False değerini döndürür. İşte örnek için kod:
123456789101112 | Tamsayı Olarak Dim intADim intB Tamsayı OlarakDim blnResult As BooleintA = 5intB = 10intA = 5 veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir |
Bu örnekte, her ikisinin de olup olmadığını kontrol etmek istiyoruz. intA 5'e eşittir veya intB 10'a eşittir. Bu koşullardan herhangi biri doğruysa, Boole değeri blnSonuç True olacak, aksi takdirde False olacaktır.
İlk önce değerini belirledik intA 5'e ve intB 10'a kadar:
12 | intA = 5intB = 10 |
Bundan sonra, kullanıyoruz Veya Değerlerden herhangi birinin 5'e eşit olup olmadığını kontrol etmek için If ifadesindeki operatör:
12345 | intA = 5 veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir |
Olarak intA değer 5, blnSonuç True döndürür:
Resim 2. VBA'da Or mantıksal operatörünü kullanma
Mantıksal Olmayan Operatörü Kullanma
NS Olumsuz mantıksal operatör bir veya daha fazla koşulu kontrol eder. Koşullar doğruysa, operatör False değerini döndürür. Aksi takdirde, True döndürür. İşte örnek için kod:
12345678910 | Tamsayı Olarak Dim intADim blnResult As BooleintA = 5Değilse (intA = 6) O haldeblnResult = DoğruBaşkablnResult = YanlışBitir |
Bu örnekte, değerinin olup olmadığını kontrol etmek istiyoruz. intA 6'ya eşit değildir. intA 6'dan farklı, Boole değeri blnSonuç True olacak, aksi takdirde False olacaktır.
İlk önce değerini belirledik intA 5'e:
1 | intA = 5 |
Bundan sonra, intA değerinin 6'dan farklı olup olmadığını kontrol etmek için If ifadesinde Not operatörünü kullanırız:
12345 | Değilse (intA = 6) O haldeblnResult = DoğruBaşkablnResult = YanlışBitir |
Olarak intA değer 5, blnSonuç True döndürür:
Resim 3. VBA'da Mantıksal değil operatörünü kullanma
Xor Mantıksal Operatörünü Kullanma
NS Xor mantıksal operatör iki veya daha fazla koşulu karşılaştırır. Koşullardan tam olarak biri doğruysa, True değerini döndürür. Koşulların hiçbiri doğru değilse veya birden fazlası doğruysa, False değerini döndürür. İşte örnek için kod:
123456789101112 | Tamsayı Olarak Dim intADim intB Tamsayı OlarakDim blnResult As BooleintA = 5intB = 10intA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir |
Bu örnekte, değerlerden birinin (intA veya IntB) tam olarak 5'e eşit olup olmadığını kontrol etmek istiyoruz. Yalnızca bir koşul doğruysa, Boolean değeri blnSonuç True olacak, aksi takdirde False olacaktır.
İlk önce değerini belirledik intA 5'e ve intB 10'a kadar:
12 | intA = 5intB = 10 |
Bundan sonra, kullanıyoruz Veya Değerlerden herhangi birinin 5'e eşit olup olmadığını kontrol etmek için If ifadesindeki operatör:
12345 | intA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitir |
Olarak intA değer 5 ve intB 10, blnSonuç True döndürür:
Resim 4. VBA'da Xor mantıksal operatörünü kullanma
Operatör
Is Operator, iki nesne değişkeninin aynı nesneyi depolayıp depolamadığını test eder.
Bir örneğe bakalım. Burada rng1 ve rng2 çalışma sayfası nesnelerine iki çalışma sayfası atayacağız ve iki çalışma sayfası nesnesinin aynı çalışma sayfasını depolayıp depolamadığını test edeceğiz:
12345678910111213 | Alt CompareObjects()Dim ws1 As Worksheet, ws2 As Worksheetws1 = Sayfaları ayarla("Sayfa1")ws2 = Sayfaları ayarla("Sayfa2")Eğer ws1 ws2 iseMsgBox "Aynı WS"BaşkaMsgBox "Farklı WS'ler"BitirAlt Bitiş |
Elbette çalışma sayfası nesneleri aynı değildir, bu nedenle “Farklı WS'ler” döndürülür.
Operatör gibi
Like Operatörü, tam olmayan eşleşmeler için iki diziyi karşılaştırabilir. Bu örnek, bir dizenin "Mr" ile başlayıp başlamadığını test edecektir.
1234567891011121314 | Alt LikeDemo()Dim strName As StringDim blnResult As BoolestrName = "Bay Michael James"strName "Mr*" Gibiyse O zamanblnResult = DoğruBaşkablnResult = YanlışBitirAlt Bitiş |