VBA – Tipo de Dados Booleanos (Dim Variable)
In this Article
Tipo de Variável Booleana
O tipo de dados booleano do VBA é usado para armazenar valores True (verdadeiro) ou False (falso). 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):
Dim blnA as Boolean
Em seguida, para atribuir um valor a uma variável, basta usar o sinal de igual:
blnA = True
Quando você coloca isso em um procedimento, ele pode ter a seguinte aparência:
Sub blnExamplo()
'declarar a variável booleana
Dim blnA as Boolean
'executar o código para preencher a variável - geralmente o código é uma instrução if ou case
If Range("A1") > 0 then
blnA = true
Else
blnA = False
End If
'mostrar a caixa de mensagem
MsgBox "O teste para ver se a célula tem um valor maior que 0 é " & blnA
End Sub
Se você executar o código acima, a seguinte caixa de mensagem será exibida.
Declarar a Variável Booleana no Nível do Módulo ou Global
No exemplo anterior, declaramos a variável booleana em um procedimento. As variáveis declaradas com um procedimento só podem ser usadas dentro desse procedimento.
Em vez disso, você pode declarar variáveis booleanas no nível do módulo ou global.
Nível do Módulo
Você declara variáveis em nível de módulo na parte superior dos módulos de código com a instrução Dim.
Essas variáveis podem ser usadas com qualquer procedimento nesse módulo de código.
Nível Global
Você também declara variáveis de nível global na parte superior dos módulos de código. Entretanto, em vez de usar a instrução Dim, você usaria a instrução Public para indicar que a variável booleana está disponível para ser usada em todo o seu projeto VBA.
Public blnA as Boolean
Se você declarasse a variável booleana em um nível de módulo e depois tentasse usá-la em um módulo diferente, receberia um erro.
Entretanto, se você tivesse usado a palavra-chave Public para declarar a variável booleana , o erro não ocorreria e o procedimento seria executado perfeitamente.
Uso de uma Variável Booleana
Você usa a variável booleana em comparações lógicas. Elas são frequentemente usadas com instruções If para testar se uma condição é Verdadeira ou Falsa, 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.
Sub blnExamplo()
'declarar a variável booleana
Dim blnA As Boolean
'teste para ver se um número é maior que o próximo
blnA = 45 > 68
'mostre a caixa de mensagem
MsgBox blnA
End Sub
Se você executar o código acima, obterá a seguinte caixa de mensagem.
porque é claro que 45 não é maior que 68!
Uso de 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.
Uso do Operador AND
Podemos usar a função AND para verificar se AMBAS as condições são atendidas.
Sub blnExamplo()
'declarar a variável booleana
Dim blnA As Boolean
'usar o operador AND para testar se ambas as condições são verdadeiras
blnA = 10 > 13 And 15 > 12
'mostrar a caixa de mensagem
MsgBox blnA
End Sub
ou podemos executar o mesmo teste usando uma declaração If:
Sub blnExamplo()
'declarar a variável booleana
Dim blnA As Boolean
'usar o operador AND para testar se ambas as condições são verdadeiras
If 10 > 13 And 15 > 12 Then
blnA = True
Else
blnA = False
End If
'mostrar a caixa de mensagem
MsgBox blnA
End Sub
Ambos os exemplos acima retornariam FALSO devido ao fato de que 10 NÃO é maior que 13 – e AMBAS as condições precisam ser verdadeiras para que o booleano seja verdadeiro.
Uso do Operador OR
Podemos usar a função OR para verificar se UMA DAS condições é atendida.
Sub blnExamplo()
'declarar a variável booleana
Dim blnA As Boolean
'use o operador OR para testar se uma das condições é verdadeira
blnA = 10 > 13 Or 15 > 12
'mostre a caixa de mensagem
MsgBox blnA
End Sub
ou podemos executar o mesmo teste usando uma instrução If:
Sub blnExamplo()
'declarar a variável booleana
Dim blnA As Boolean
'use o operador OR para testar se uma das condições é verdadeira
If 10 > 13 OR 15 > 12 Then
blnA = True
Else
blnA = False
End If
'mostrar a caixa de mensagem
MsgBox blnA
End Sub
Esses exemplos retornariam TRUE devido ao fato de que 10 NÃO é maior que 13, MAS 15 É maior que 12 – e SOMENTE UMA condição precisa ser verdadeira para que o booleano seja verdadeiro.
O uso de instruções If nos permite usar mais operadores lógicos.
Uso do 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.
Sub EncontrarDiferencas()
'declarar variáveis de intervalo
Dim rng1 As Range
Dim rng2 As Range
'ativar a planilha um
Worksheets("Planilha1").Activate
'preencher os intervalos
Set rng1 = Range("A3")
Set rng2 = Range("B3")
'usar o operador NOT para verificar se os valores são iguais ou não
If Not rng1.Value = rng2.Value Then
MsgBox "Os valores nas células não são iguais"
Else
MsgBox "Os valores nas células são iguais"
End If
End Sub
Uso do Operador Lógico Xor
O operador lógico Xor é usado para comparar duas ou mais condições. Se uma das condições for verdadeira, ele retornará TRUE. Se houver duas condições e NENHUMA for verdadeira ou AMBAS forem verdadeiras, ele retornará FALSO.
Sub blnExamplo()
'declarar os números inteiros
Dim intA As Integer
Dim intB As Integer
'declarar a variável booleana
Dim blnResultado As Boolean
'preencher as variáveis
intA = 5
intB = 10
'verificar se uma delas é verdadeira
If intA = 5 Xor intB = 5 Then
blnResultado = True
Else
blnResultado = False
End If
MsgBox blnResultado
End Sub
No exemplo acima, como UMA das condições é VERDADEIRA, a caixa de mensagem retornará VERDADEIRO.
Sub blnExamplo()
'declarar os números inteiros
Dim intA As Integer
Dim intB As Integer
'declarar a variável booleana
Dim blnResultado As Boolean
'preencher as variáveis
intA = 5
intB = 5
'verificar se uma delas é verdadeira
If intA = 5 Xor intB = 5 Then
blnResultado = True
Else
blnResultado = False
End If
MsgBox blnResultado
End Sub
Entretanto, no exemplo acima, como AMBAS as condições são verdadeiras, a caixa de mensagem retornará FALSO.
Sub blnExamplo()
'declarar os inteiros
Dim intA As Integer
Dim intB As Integer
'declarar a variável booleana
Dim blnResultado As Boolean
'preencher as variáveis
intA = 6
intB = 8
'verificar se uma delas é verdadeira
If intA = 5 Xor intB = 5 Then
blnResultado = True
Else
blnResultado = False
End If
MsgBox blnResultado
End Sub
e, finalmente, como ambas as condições são FALSAS, a caixa de mensagem também retornará FALSO.