Tipo de dados booleano VBA (variável Dim)

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.

wave wave wave wave wave