Boole Değişken Türü
VBA Boolean veri türü, Doğru veya Yanlış değerleri depolamak için kullanılır. True ayrıca 1 ve False 0 ile temsil edilebilir.
Bir Boolean değişkeni bildirmek için Dim İfadesini kullanırsınız (Boyut'un kısaltması):
1 | Boole olarak Dim blnA |
Ardından, bir değişkene değer atamak için eşittir işaretini kullanmanız yeterlidir:
1 | blnA = Doğru |
Bunu bir prosedüre koyduğunuzda, şöyle görünebilir:
123456789101112 | Alt blnÖrnek()'boole değişkenini bildirBoole olarak Dim blnA'değişkeni doldurmak için kodu çalıştır - genellikle kod bir if veya case ifadesidirAralık ("A1") > 0 iseblnA = doğruBaşkablnA = YanlışBitir'mesaj kutusunu gösterMsgBox "Hücrenin 0'dan büyük bir değere sahip olup olmadığını görmek için yapılan test " & blnAAlt Bitiş |
Yukarıdaki kodu çalıştırırsanız, aşağıdaki mesaj kutusu gösterilecektir.
Modül veya Global Düzeyde Boole Değişkeni Bildirme
Bir önceki örnekte, Boole bir prosedür içinde değişkendir. Bir prosedürle bildirilen değişkenler yalnızca o prosedür içinde kullanılabilir.
Bunun yerine, Boole değişkenlerini modül veya global düzeyde bildirebilirsiniz.
Modül Seviyesi
sen beyan et Modül seviyesi ile kod modüllerinin en üstündeki değişkenler loş Beyan.
Bu değişkenler, o kod modülündeki herhangi bir prosedürle kullanılabilir.
Küresel düzey
sen de beyan et Küresel düzey kod modüllerinin en üstündeki değişkenler. Ancak, kullanmak yerine loş ifadesini kullanırsınız Halk olduğunu belirtmek için açıklama Boole değişken, VBA Projeniz boyunca kullanılmak üzere mevcuttur.
1 | Boole olarak Public blnA |
beyan edecek olsaydınız Boole bir modül düzeyinde değişken ve ardından farklı bir modülde kullanmayı deneyin, bir hata alırsınız.
Ancak, şunu bildirmek için Public anahtar sözcüğünü kullanmış olsaydınız, Boole değişken, hata oluşmayacak ve prosedür mükemmel bir şekilde çalışacaktır.
Boole Değişkeni Kullanma
Mantıksal karşılaştırmada Boolean değişkenini kullanırsınız. Bunlar genellikle, yukarıdaki örneğe göre bir koşulun Doğru veya Yanlış olup olmadığını test etmek için If ifadeleriyle veya mantıksal bir test uygulamak için bir kod satırında - belki bir değerin diğerinden büyük olup olmadığını görmek için kullanılır.
12345678 | Alt blnÖrnek()'boole değişkenini bildirBoole olarak Dim blnA'bir sayının bir sonraki sayıdan büyük olup olmadığını test edinblnA = 45 > 68'mesaj kutusunu gösterMsgBox blnAAlt Bitiş |
Yukarıdaki kodu çalıştırırsanız, aşağıdaki mesaj kutusunu alacaksınız.
çünkü elbette 45, 68'den büyük değil!
Boole Operatörlerini Kullanma
Mantıksal karşılaştırmada Boole değişkenleri kullanıldığından, birden fazla koşulun doğru veya yanlış olup olmadığını test etmek için AND ve OR mantıksal operatörlerini kullanabiliriz.
AND operatörünü kullanma
İKİ koşulun karşılanıp karşılanmadığını görmek için VE işlevini kullanabiliriz.
12345678 | Alt blnÖrnek()'boole değişkenini bildirBoole olarak Dim blnA'her iki koşulun da doğru olup olmadığını test etmek için AND operatörünü kullanınblnA = 10 > 13 Ve 15 > 12'mesaj kutusunu gösterMsgBox blnAAlt Bitiş |
veya aynı testi bir If İfadesi kullanarak çalıştırabiliriz:
123456789101112 | Alt blnÖrnek()'boole değişkenini bildirBoole olarak Dim blnA'her iki koşulun da doğru olup olmadığını test etmek için AND operatörünü kullanın10 > 13 Ve 15 > 12 iseblnA = DoğruBaşkablnA = YanlışBitir'mesaj kutusunu gösterMsgBox blnAAlt Bitiş |
Yukarıdaki her iki örnek de dönecektir YANLIŞ 10 olması nedeniyle OLUMSUZ 13'ten büyük - ve İKİSİ BİRDEN Boolean'ın True olması için koşulların True olması gerekir.
VEYA operatörünü kullanma
Koşullardan BİRİNİ karşılanıp karşılanmadığını görmek için VEYA işlevini kullanabiliriz.
12345678 | Alt blnÖrnek()'boole değişkenini bildirBoole olarak Dim blnA'her iki koşulun da doğru olup olmadığını test etmek için AND operatörünü kullanınblnA = 10 > 13 Veya 15 > 12'mesaj kutusunu gösterMsgBox blnAAlt Bitiş |
veya aynı testi bir If İfadesi kullanarak çalıştırabiliriz:
123456789101112 | Alt blnÖrnek()'boole değişkenini bildirBoole olarak Dim blnA'her iki koşulun da doğru olup olmadığını test etmek için AND operatörünü kullanın10 > 13 VEYA 15 > 12 iseblnA = DoğruBaşkablnA = YanlışBitir'mesaj kutusunu gösterMsgBox blnAAlt Bitiş |
Bu örnekler dönecek NS 10'un 13'ten büyük DEĞİL, AMA 15'in 12'den büyük olması nedeniyle - veSADECE BİR Boolean'ın True olması için koşulun True olması gerekir.
If deyimlerini kullanmak, daha mantıklı operatörler kullanmamızı sağlar
NOT operatörünü kullanma
NOT operatörünü Boolean değişkeni ile de kullanabiliriz. NOT operatörü, koşulun değerini olumsuzlar - bu nedenle bir koşul doğruysa, NOT operatörü false döndürür.
12345678910111213141516 | Alt FindDifferences()'aralık değişkenlerini bildirAralık olarak Dim rng1Aralık olarak Dim rng2'birinci sayfayı etkinleştirÇalışma Sayfaları("Sayfa1").Etkinleştir'aralıkları doldurrng1 = Aralık ("A3") olarak ayarlarng2 = Aralık ("B3") olarak ayarlaDeğerlerin eşit olup olmadığını görmek için DEĞİL operatörünü kullanın.rng1.Value = rng2.Value Değilse O zamanMsgBox "Hücrelerdeki değerler eşit değil"BaşkaMsgBox "Hücrelerdeki değerler eşittir"BitirAlt Bitiş |
Xor Mantıksal Operatörünü Kullanma
NSXor mantıksal operatör, iki veya daha fazla koşulu karşılaştırmak için kullanılır. Koşullardan biri doğruysa, TRUE değerini döndürür. 2 koşul varsa ve HİÇBİRİ doğru veya HİÇBİRİ doğru değilse, YANLIŞ döndürür.
1234567891011121314151617 | Alt blnÖrnek()'tamsayıları bildirTamsayı Olarak Dim intADim intB Tamsayı Olarak'boole değişkenini bildirDim blnResult As Boole'değişkenleri doldurintA = 5intB = 10'birinin doğru olup olmadığını kontrol etintA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitirMsgBox blnSonuçAlt Bitiş |
Yukarıdaki örnekte, koşullardan BİRİ DOĞRU olduğu için mesaj kutusu dönecektir. NS.
1234567891011121314151617 | Alt blnÖrnek()'tamsayıları bildirTamsayı Olarak Dim intADim intB Tamsayı Olarak'boole değişkenini bildirDim blnResult As Boole'değişkenleri doldurintA = 5intB = 5'birinin doğru olup olmadığını kontrol etintA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitirMsgBox blnSonuçAlt Bitiş |
Ancak, yukarıdaki örnekte, BOTH koşulları doğru olduğu için mesaj kutusu geri dönecektir. YANLIŞ.
1234567891011121314151617 | Alt blnÖrnek()'tamsayıları bildirTamsayı Olarak Dim intADim intB Tamsayı Olarak'boole değişkenini bildirDim blnResult As Boole'değişkenleri doldurintA = 6intB = 8'birinin doğru olup olmadığını kontrol etintA = 5 X veya intB = 5 iseblnResult = DoğruBaşkablnResult = YanlışBitirMsgBox blnSonuçAlt Bitiş |
ve son olarak, her iki koşul da YANLIŞ olduğundan, mesaj kutusu da YANLIŞ döndürür.