Tipo de Variável Booleana
O tipo de dados Booleano VBA é usado para armazenar valores True ou False. True também pode ser representado por 1 e False por 0.
Para declarar uma variável booleana, você usa a declaração Dim (abreviação de Dimension):
1 | Dim blnA como booleano |
Então, para atribuir um valor a uma variável, você simplesmente usa o sinal de igual:
1 | blnA = True |
Quando você coloca isso em um procedimento, pode ter a seguinte aparência:
123456789101112 | Sub blnExample ()'declara a variável booleanaDim blnA como booleano'executa o código para preencher a variável - normalmente o código é uma instrução if ou caseSe Range ("A1")> 0, entãoblnA = verdadeiroOutroblnA = FalseFim se'mostra a caixa de mensagemMsgBox "O teste para ver se a célula tem um valor maior que 0 é" & blnAEnd Sub |
Se você executar o código acima, a seguinte caixa de mensagem será exibida.
Declare a variável booleana no módulo ou nível global
No exemplo anterior, declaramos o boleano variável dentro de um procedimento. Variáveis declaradas com um procedimento só podem ser usadas dentro desse procedimento.
Em vez disso, você pode declarar variáveis booleanas no módulo ou nível global.
Nível de Módulo
Você declara Nível de módulo variáveis no topo dos módulos de código com o Dim demonstração.
Essas variáveis podem ser usadas com qualquer procedimento nesse módulo de código.
Nível global
Você também declara Nível global variáveis na parte superior dos módulos de código. No entanto, em vez de usar o Dim declaração, você usaria o Público declaração para indicar que o boleano variável está disponível para ser usada em todo o projeto VBA.
1 | BlnA público como booleano |
Se você declarasse o boleano variável em um nível de módulo e, em seguida, tente usá-la em um módulo diferente, você obterá um erro.
No entanto, se você tiver usado a palavra-chave pública para declarar o boleano variável, o erro não ocorreria e o procedimento seria executado perfeitamente.
Usando uma variável booleana
Você usa a variável booleana na comparação lógica. Eles são freqüentemente usados com instruções If para testar se uma condição é True ou False conforme o exemplo acima, ou em uma linha de código para aplicar um teste lógico - talvez para ver se um valor é maior que outro.
12345678 | Sub blnExample ()'declara a variável booleanaDim blnA As Boolean'teste para ver se um número é maior que o próximo númeroblnA = 45> 68'mostra a caixa de mensagemMsgBox blnAEnd Sub |
Se você executar o código acima, receberá a seguinte caixa de mensagem.
porque é claro que 45 não é maior que 68!
Usando operadores booleanos
Como as variáveis booleanas são usadas na comparação lógica, podemos usar os operadores lógicos AND e OR para testar se mais de uma condição é verdadeira ou falsa.
Usando o operador AND
Podemos usar a função AND para ver se AMBAS as condições são atendidas.
12345678 | Sub blnExample ()'declara a variável booleanaDim blnA As Boolean'use o operador AND para testar se ambas as condições são verdadeirasblnA = 10> 13 e 15> 12'mostra a caixa de mensagemMsgBox blnAEnd Sub |
ou podemos executar o mesmo teste usando uma instrução If:
123456789101112 | Sub blnExample ()'declara a variável booleanaDim blnA As Boolean'use o operador AND para testar se ambas as condições são verdadeirasSe 10> 13 e 15> 12, entãoblnA = TrueOutroblnA = FalseFim se'mostra a caixa de mensagemMsgBox blnAEnd Sub |
Ambos os exemplos acima retornariam FALSO devido ao fato de que 10 é NÃO maior que 13 - e AMBAS as condições devem ser True para que o Booleano seja True.
Usando o operador OR
Podemos usar a função OR para ver se UMA DAS condições é atendida.
12345678 | Sub blnExample ()'declara a variável booleanaDim blnA As Boolean'use o operador AND para testar se ambas as condições são verdadeirasblnA = 10> 13 ou 15> 12'mostra a caixa de mensagemMsgBox blnAEnd Sub |
ou podemos executar o mesmo teste usando uma instrução If:
123456789101112 | Sub blnExample ()'declara a variável booleanaDim blnA As Boolean'use o operador AND para testar se ambas as condições são verdadeirasSe 10> 13 OU 15> 12, entãoblnA = TrueOutroblnA = FalseFim se'mostra a caixa de mensagemMsgBox blnAEnd Sub |
Esses exemplos retornariam VERDADE devido ao fato de que 10 NÃO é maior que 13, MAS 15 É maior que 12 - eAPENAS UM A condição deve ser True para que o Booleano seja True.
O uso de instruções If nos permite usar operadores mais lógicos
Usando o operador NOT
Também podemos usar o operador NOT com a variável booleana. O operador NOT nega o valor da condição - portanto, se uma condição for verdadeira, o operador NOT retornará falso.
12345678910111213141516 | Sub FindDifferences ()'declara variáveis de alcanceDim rng1 como intervaloDim rng2 como intervalo'ativar folha umPlanilhas ("Folha1"). Ativar'preencher os intervalosDefinir rng1 = intervalo ("A3")Definir rng2 = intervalo ("B3")'use o operador NOT para ver se os valores são iguais ou não.Se não for rng1.Value = rng2.Value ThenMsgBox "Os valores nas células não são iguais"OutroMsgBox "Os valores nas células são iguais"Fim seEnd Sub |
Usando o operador lógico Xor
oXor operador lógico é usado para comparar duas ou mais condições. Se uma das condições for verdadeira, ele retornará TRUE. Se houver 2 condições e NENHUM for verdadeiro ou AMBOS forem verdadeiros, ele retornará FALSO.
1234567891011121314151617 | Sub blnExample ()'declara os inteirosDim intA As IntegerDim intB As Integer'declara a variável booleanaDim blnResult As Boolean'preencher as variáveisintA = 5intB = 10'verifique se um é verdadeiroSe intA = 5 Xor intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim seMsgBox blnResultEnd Sub |
No exemplo acima, como UMA das condições é VERDADEIRA, a caixa de mensagem retornará VERDADE.
1234567891011121314151617 | Sub blnExample ()'declara os inteirosDim intA As IntegerDim intB As Integer'declara a variável booleanaDim blnResult As Boolean'preencher as variáveisintA = 5intB = 5'verifique se um é verdadeiroSe intA = 5 Xor intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim seMsgBox blnResultEnd Sub |
No entanto, no exemplo acima, como AMBAS as condições são verdadeiras, a caixa de mensagem retornará FALSO.
1234567891011121314151617 | Sub blnExample ()'declara os inteirosDim intA As IntegerDim intB As Integer'declara a variável booleanaDim blnResult As Boolean'preencher as variáveisintA = 6intB = 8'verifique se um é verdadeiroSe intA = 5 Xor intB = 5 EntãoblnResult = TrueOutroblnResult = FalseFim seMsgBox blnResultEnd Sub |
e, finalmente, como ambas as condições são FALSE, a caixa de mensagem também retornará FALSE.