Boolen muuttujan tyyppi
VBA Boolean -tyyppiä käytetään True- tai False -arvojen tallentamiseen. Tosi voidaan esittää myös 1: llä ja epätosi 0: lla.
Boolen muuttujan ilmoittamiseen käytetään Dim Statementia (lyhenne Dimension):
1 | Dim blnA Booleanina |
Sitten, jos haluat määrittää arvon muuttujalle, käytä vain yhtäsuuruusmerkkiä:
1 | blnA = Totta |
Kun laitat tämän menettelyyn, se voi näyttää tältä:
123456789101112 | Sub blnExample ()'julista boolen muuttujaDim blnA Booleanina'Suorita koodi muuttujan täyttämiseksi - yleensä koodi on if- tai case -lauseJos alue ("A1")> 0 sittenblnA = tottaMuublnA = vääräLoppu Jos'näytä viestiruutuMsgBox "Testaa, onko solun arvo suurempi kuin 0" & blnAEnd Sub |
Jos suoritat yllä olevan koodin, seuraava viestiruutu tulee näkyviin.
Ilmoita Boolen muuttuja moduulissa tai globaalilla tasolla
Edellisessä esimerkissä olemme ilmoittaneet Boolen muuttuja menettelyn sisällä. Proseduurilla ilmoitettuja muuttujia voidaan käyttää vain kyseisen menettelyn sisällä.
Sen sijaan voit ilmoittaa Boolen muuttujat moduuli- tai globaalitasolla.
Moduulitaso
Ilmoitat Moduulitaso muuttujia koodimoduulien yläosassa Himmeä lausunto.
Näitä muuttujia voidaan käyttää minkä tahansa koodimoduulin toimenpiteen kanssa.
Globaali taso
Ilmoitat myös Globaali taso muuttujia koodimoduulien yläosassa. Sen sijaan, että käytät Himmeä käyttäisit lauseketta Julkinen lausunto osoittaa, että Boolen muuttuja on käytettävissä käytettäväksi koko VBA -projektisi aikana.
1 | Julkinen blnA Booleanina |
Jos julistaisit Boolen muuttuja moduulitasolla ja yritä sitten käyttää sitä eri moduulissa, saat virheilmoituksen.
Jos olisit kuitenkin käyttänyt julkista avainsanaa ilmoittaaksesi Boolen muuttuja, virhe ei ilmenisi ja menettely toimisi täydellisesti.
Boolen muuttujan käyttäminen
Käytät Boolen muuttujaa loogisessa vertailussa. Näitä käytetään usein If -lauseiden kanssa testatakseen, onko ehto tosi tai epätosi yllä olevan esimerkin mukaisesti, tai koodirivillä loogisen testin suorittamiseksi - ehkä nähdäkseen, onko yksi arvo suurempi kuin toinen.
12345678 | Sub blnExample ()'julista boolen muuttujaDim blnA Boolen muodossa'Testaa, onko yksi numero suurempi kuin seuraava numeroblnA = 45> 68'näytä viestiruutuMsgBox blnAEnd Sub |
Jos suoritat yllä olevan koodin, saat seuraavan viestiruudun.
koska tietysti 45 ei ole suurempi kuin 68!
Boolen operaattoreiden käyttäminen
Koska Boolen muuttujia käytetään loogisessa vertailussa, voimme käyttää loogisia operaattoreita AND ja OR testataksemme, onko useampi kuin yksi ehto totta vai epätosi.
AND -operaattorin käyttäminen
Voimme käyttää AND -funktiota nähdäksemme, täyttyvätkö molemmat ehdot.
12345678 | Sub blnExample ()'julista boolen muuttujaDim blnA Boolen muodossa'Käytä AND -operaattoria testataksesi, täyttyvätkö molemmat ehdotblnA = 10> 13 Ja 15> 12'näytä viestiruutuMsgBox blnAEnd Sub |
tai voisimme suorittaa saman testin If -lauseella:
123456789101112 | Sub blnExample ()'julista boolen muuttujaDim blnA Boolen muodossa'Käytä AND -operaattoria testataksesi, täyttyvätkö molemmat ehdotJos 10> 13 Ja 15> 12 SittenblnA = TottaMuublnA = vääräLoppu Jos'näytä viestiruutuMsgBox blnAEnd Sub |
Molemmat yllä olevat esimerkit palaavat VÄÄRÄ johtuu siitä, että 10 on EI yli 13 - ja Molemmat ehtojen on oltava totta, jotta totuusarvo olisi totta.
TAI -operaattorin käyttäminen
Voimme käyttää TAI -funktiota nähdäksemme, täyttyykö jokin ehdoista.
12345678 | Sub blnExample ()'julista boolen muuttujaDim blnA Boolen muodossa'Käytä AND -operaattoria testataksesi, täyttyvätkö molemmat ehdotblnA = 10> 13 Tai 15> 12'näytä viestiruutuMsgBox blnAEnd Sub |
tai voisimme suorittaa saman testin If -lauseella:
123456789101112 | Sub blnExample ()'julista boolen muuttujaDim blnA Boolen muodossa'Käytä AND -operaattoria testataksesi, täyttyvätkö molemmat ehdotJos 10> 13 TAI 15> 12 SittenblnA = TottaMuublnA = vääräLoppu Jos'näytä viestiruutuMsgBox blnAEnd Sub |
Nämä esimerkit palaisivat TOTTA johtuu siitä, että 10 EI ole suurempi kuin 13 MUTTA 15 on suurempi kuin 12 - jaVAIN YKSI ehdon on oltava tosi, jotta totuusarvo olisi totta.
If -lauseiden avulla voimme käyttää loogisempia operaattoreita
NOT -operaattorin käyttäminen
Voimme myös käyttää NOT -operaattoria Boolen muuttujan kanssa. EI -operaattori kumoaa ehdon arvon - joten jos ehto on tosi, EI -operaattori palauttaa epätosi.
12345678910111213141516 | Sub FindDifferences ()'ilmoittaa alueen muuttujatDim rng1 As RangeDim rng2 As Range'aktivoi arkki yksiLaskentataulukot ("Sheet1"). Aktivoi'asuta alueetAseta rng1 = Alue ("A3")Aseta rng2 = Alue ("B3")Käytä NOT -operaattoria nähdäksesi, ovatko arvot yhtä suuret vai eivät.Jos ei rng1.Value = rng2.Value SittenMsgBox "Solujen arvot eivät ole samat"MuuMsgBox "Solujen arvot ovat yhtä suuret"Loppu JosEnd Sub |
Xor Logical Operatorin käyttäminen
TheXor loogista operaattoria käytetään kahden tai useamman ehdon vertaamiseen. Jos jokin ehdoista on totta, se palauttaa arvon TOSI. Jos on kaksi ehtoa ja KOSKAAN eivät ole totta tai KUMMAT ovat totta, se palauttaa EPÄTOSI.
1234567891011121314151617 | Sub blnExample ()'ilmoita kokonaisluvutDim intA kokonaislukunaDim intB kokonaislukuna'julista boolen muuttujaDim blnTulos Boolen muodossa'täyttää muuttujatintA = 5intB = 10'Tarkista, onko yksi tottaJos intA = 5 X tai intB = 5 SittenblnResult = TottaMuublnResult = VääräLoppu JosMsgBox blnTulosEnd Sub |
Yllä olevassa esimerkissä, koska YKSI ehdoista on TOSI, viestilaatikko palaa TOTTA.
1234567891011121314151617 | Sub blnExample ()'ilmoita kokonaisluvutDim intA kokonaislukunaDim intB kokonaislukuna'julista boolen muuttujaDim blnTulos Boolen muodossa'täyttää muuttujatintA = 5intB = 5'Tarkista, onko yksi tottaJos intA = 5 X tai intB = 5 SittenblnResult = TottaMuublnResult = VääräLoppu JosMsgBox blnTulosEnd Sub |
Kuitenkin yllä olevassa esimerkissä, koska molemmat ehdot täyttyvät, sanomalaatikko palaa VÄÄRÄ.
1234567891011121314151617 | Sub blnExample ()'ilmoittaa kokonaisluvutDim intA kokonaislukunaDim intB kokonaislukuna'julista boolen muuttujaDim blnTulos Boolen muodossa'täyttää muuttujatintA = 6intB = 8'Tarkista, onko yksi tottaJos intA = 5 X tai intB = 5 SittenblnResult = TottaMuublnResult = VääräLoppu JosMsgBox blnTulosEnd Sub |
ja lopuksi, koska molemmat ehdot ovat EPÄTOSIA, myös viestiruutu palauttaa EPÄTOSI.