VBA booleovský datový typ (proměnná dim)

Booleovský typ proměnné

Datový typ VBA Boolean se používá k ukládání hodnot True nebo False. True může být také reprezentováno 1 a False 0.

Chcete -li deklarovat logickou proměnnou, použijte příkaz Dim (zkratka pro Dimension):

1 Dim blnA jako Boolean

Potom k přiřazení hodnoty proměnné jednoduše použijete znaménko rovnosti:

1 blnA = pravda

Když to vložíte do postupu, může to vypadat takto:

123456789101112 Sub blnExample ()'deklarujte booleovskou proměnnou.'Dim blnA jako Boolean'spusťte kód pro naplnění proměnné - obvykle je kódem příkaz if nebo casePokud je rozsah („A1“)> 0, pakblnA = pravdaJinýblnA = NepravdaKonec If'zobrazit pole se zprávouMsgBox "Test, zda buňka má hodnotu větší než 0, je" & blnAEnd Sub

Pokud spustíte výše uvedený kód, zobrazí se následující okno se zprávou.

Deklarujte booleovskou proměnnou na úrovni modulu nebo na globální úrovni

V předchozím příkladu jsme deklarovali Boolean proměnná v rámci procedury. Proměnné deklarované pomocí procedury lze použít pouze v rámci této procedury.

Místo toho můžete deklarovat booleovské proměnné na úrovni modulu nebo na globální úrovni.

Úroveň modulu

Prohlašujete Úroveň modulu proměnné v horní části modulů kódu pomocí Ztlumit tvrzení.

Tyto proměnné lze použít s jakoukoli procedurou v tomto modulu kódu.

Globální úroveň

Také prohlašujete Globální úroveň proměnné v horní části modulů kódu. Místo použití Ztlumit prohlášení, použili byste Veřejnost prohlášení, které naznačuje, že Boolean proměnná je k dispozici pro použití v celém vašem projektu VBA.

1 Veřejné blnA jako Boolean

Pokud byste prohlásili Boolean proměnnou na úrovni modulu a poté ji zkuste použít v jiném modulu, došlo by k chybě.

Pokud jste však použili klíčové slovo Public k deklaraci souboru Boolean proměnná, chyba by nenastala a postup by běžel perfektně.

Použití logické proměnné

Při logickém porovnávání používáte logickou proměnnou. Ty se často používají s příkazy If k testování, zda je podmínka pravdivá nebo nepravdivá podle výše uvedeného příkladu, nebo v řádku kódu pro použití logického testu - třeba aby se zjistilo, zda je jedna hodnota větší než jiná.

12345678 Sub blnExample ()'deklarujte booleovskou proměnnou.'Dim blnA jako booleovský'vyzkoušejte, zda je jedno číslo větší než číslo dalšíblnA = 45> 68'zobrazit pole se zprávouMsgBox blnAEnd Sub

Pokud spustíte výše uvedený kód, zobrazí se následující okno se zprávou.

protože 45 samozřejmě není větší než 68!

Použití booleovských operátorů

Jelikož logické proměnné se používají při logickém porovnávání, můžeme pomocí logických operátorů AND a OR otestovat, zda je více než jedna podmínka pravdivá nebo nepravdivá.

Pomocí operátoru AND

Pomocí funkce AND můžeme zjistit, zda jsou splněny obě podmínky.

12345678 Sub blnExample ()'deklarujte booleovskou proměnnouDim blnA jako booleovský'Pomocí operátoru AND vyzkoušejte, zda jsou splněny obě podmínkyblnA = 10> 13 A 15> 12'zobrazit pole se zprávouMsgBox blnAEnd Sub

nebo bychom mohli spustit stejný test pomocí příkazu If:

123456789101112 Sub blnExample ()'deklarujte booleovskou proměnnou.'Dim blnA jako booleovský'Pomocí operátoru AND vyzkoušejte, zda jsou obě podmínky splněnyPokud 10> 13 A 15> 12 PakblnA = pravdaJinýblnA = NepravdaKonec If'zobrazit pole se zprávouMsgBox blnAEnd Sub

Oba výše uvedené příklady se vrátí NEPRAVDIVÉ vzhledem k tomu, že 10 je NE větší než 13 - a OBA podmínky musí být pravdivé, aby byla logická hodnota pravdivá.

Pomocí operátoru OR

Můžeme použít funkci NEBO, abychom zjistili, zda je splněna JEDNA Z podmínek.

12345678 Sub blnExample ()'deklarujte booleovskou proměnnou.'Dim blnA jako booleovský'Pomocí operátoru AND vyzkoušejte, zda jsou splněny obě podmínkyblnA = 10> 13 nebo 15> 12'zobrazit pole se zprávouMsgBox blnAEnd Sub

nebo bychom mohli spustit stejný test pomocí příkazu If:

123456789101112 Sub blnExample ()'deklarujte booleovskou proměnnou.'Dim blnA jako booleovský'Pomocí operátoru AND vyzkoušejte, zda jsou splněny obě podmínkyPokud 10> 13 NEBO 15> 12 PakblnA = pravdaJinýblnA = NepravdaKonec If'zobrazit pole se zprávouMsgBox blnAEnd Sub

Tyto příklady by se vrátily SKUTEČNÝ vzhledem k tomu, že 10 NENÍ větší než 13, ALE 15 JE větší než 12 - aJEN JEDEN podmínka musí být True, aby byla logická hodnota pravdivá.

Použití příkazů If nám umožňuje použít více logických operátorů

Použití operátoru NOT

Můžeme také použít operátor NOT s booleovskou proměnnou. Operátor NOT neguje hodnotu podmínky - takže pokud je podmínka pravdivá, operátor NOT vrátí hodnotu false.

12345678910111213141516 Dílčí rozdíly v hledání ()'deklarujte proměnné rozsahu.'Dim rng1 As RangeDim rng2 As Range'aktivujte list jednaPracovní listy („List1“). Aktivujte“naplňte rozsahyNastavit rng1 = rozsah ("A3")Nastavit rng2 = rozsah ("B3")'pomocí operátoru NOT zjistěte, zda jsou hodnoty stejné nebo ne.Pokud není rng1.Value = rng2.Value ThenMsgBox "Hodnoty v buňkách nejsou stejné"JinýMsgBox "Hodnoty v buňkách jsou stejné"Konec IfEnd Sub

Použití logického operátoru Xor

TheXor logický operátor slouží k porovnání dvou nebo více podmínek. Pokud je jedna z podmínek pravdivá, vrátí hodnotu PRAVDA. Pokud existují 2 podmínky a NEITHER jsou pravdivé nebo OBĚ jsou pravdivé, vrátí FALSE.

1234567891011121314151617 Sub blnExample ()'deklarujte celá číslaDim intA jako celé čísloDim intB jako celé číslo'deklarujte booleovskou proměnnouDim blnVýsledek jako booleovský“naplňte proměnnéintA = 5intB = 10„Zkontroluj, jestli je jedna pravdaPokud intA = 5 Xor intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec IfMsgBox blnVýsledekEnd Sub

Ve výše uvedeném příkladu, protože JEDNA z podmínek je PRAVDA, vrátí se okno se zprávou SKUTEČNÝ.

1234567891011121314151617 Sub blnExample ()'deklarujte celá číslaDim intA jako celé čísloDim intB jako celé číslo'deklarujte booleovskou proměnnou.'Dim blnVýsledek jako booleovský“naplňte proměnnéintA = 5intB = 5“zkontroluj, jestli je jedna pravdaPokud intA = 5 Xor intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec IfMsgBox blnVýsledekEnd Sub

Ve výše uvedeném příkladu se však, protože platí OBĚ podmínky, vrátí okno se zprávou NEPRAVDIVÉ.

1234567891011121314151617 Sub blnExample ()'deklarujte celá číslaDim intA jako celé čísloDim intB jako celé číslo'deklarujte booleovskou proměnnou.'Dim blnVýsledek jako booleovský“naplňte proměnnéintA = 6intB = 8“zkontroluj, jestli je jedna pravdaPokud intA = 5 Xor intB = 5 PakblnResult = TrueJinýblnResult = FalseKonec IfMsgBox blnVýsledekEnd Sub

a nakonec, protože obě podmínky jsou NEPRAVDA, okno se zprávou také vrátí NEPRAVDA.

wave wave wave wave wave