VBA – Tipo de Dados Booleanos (Dim Variable)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 17, 2023

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.

teste celula zero

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.

declaracao nivel 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.

declaracao nivel modulo

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

declaracao nivel global

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.

variavel nao definida

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.

resposta-falso

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.

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA