VBA – Operadores Lógicos – OR, AND, XOR, NOT, IS e LIKE

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on September 4, 2023

O VBA permite que você use os operadores lógicos And, Or, Not e Xor para comparar valores. Os operadores são considerados “booleanos”, o que significa que eles retornam True (Verdadeiro) ou False (Falso) como resultado.

Se você quiser saber como comparar cadeias de caracteres, clique aqui: VBA Compare Strings – StrComp

Se você quiser aprender a usar operadores de comparação, clique aqui: Operadores de comparação do VBA – Not Equal to e outros

Uso do operador lógico And

O operador lógico And compara duas ou mais condições. Se todas as condições forem verdadeiras, o operador retornará Verdadeiro. Se pelo menos uma das condições não for verdadeira, o operador retornará Falso. Veja a seguir um exemplo

Dim intA As Integer
Dim intB As Integer
Dim blnResultado As Boolean
  
intA = 5
intB = 5
   
If intA = 5 And intB = 5 Then
    blnResultado = True
Else
    blnResultado = False
End If

Neste exemplo, queremos verificar se intA e intB são iguais a 5. Se isso for verdade, o valor do booleano blnResultado será Verdadeiro, caso contrário, será Falso.

Primeiro, definimos os valores de intA e intB como 5:

intA = 5
intB = 5

Depois disso, usamos o operador And na instrução If para verificar se os valores são iguais a 5:

If intA = 5 And intB = 5 Then
    blnResultado = True
Else
    blnResultado = False
End If

Como ambas as variáveis são iguais a 5, o blnResultado retorna Verdadeiro:

exemplo operador and

Imagem 1. Uso do operador lógico And no VBA

Uso do Operador Lógico Or

O operador lógico Or compara duas ou mais condições. Se pelo menos uma das condições for verdadeira, ele retornará Verdadeiro. Se nenhuma das condições for verdadeira, o operador retornará Falso. Aqui está o código do exemplo:

Dim intA As Integer
Dim intB As Integer
Dim blnResultado As Boolean

intA = 5
intB = 10

If intA = 5 Or intB = 5 Then
    blnResultado = True
Else
    blnResultado = False
End If

Neste exemplo, queremos verificar se intA é igual a 5 ou se intB é igual a 10. Se qualquer uma dessas condições for verdadeira, o valor do booleano blnResultado será Verdadeiro; caso contrário, será Falso.

Primeiro, definimos o valor de intA como 5 e intB como 10:

intA = 5
intB = 10

Depois disso, usamos o operador Or na instrução If para verificar se algum dos valores é igual a 5:

If intA = 5 Or intB = 5 Then
    blnResultado = True
Else
    blnResultado = False
End If

Como o valor de intA é 5, o blnResultado retorna Verdadeiro:

exemplo operador or

Imagem 2. Uso do operador lógico Or no VBA

Uso do Operador Lógico Not

O operador lógico Not verifica uma ou mais condições. Se as condições forem verdadeiras, o operador retornará Falso. Caso contrário, ele retornará Verdadeiro. Aqui está o código do exemplo:

Dim intA As Integer
Dim blnResultado As Boolean

intA = 5

If Not (intA = 6) Then
    blnResultado = True
Else
    blnResultado = False
End If

Neste exemplo, queremos verificar se o valor de intA não é igual a 6. Se intA for diferente de 6, o valor do booleano blnResultado será Verdadeiro; caso contrário, será Falso.

Primeiro, definimos o valor de intA como 5:

intA = 5

Depois disso, usamos o operador Not na instrução If para verificar se o valor de intA é diferente de 6:

If Not (intA = 6) Then
    blnResultado = True
Else
    blnResultado = False
End If

Como o valor de intA é 5, o blnResultado retorna Verdadeiro

exemplo operador not

Imagem 3. Uso do operador lógico Not no VBA

Uso do operador lógico Xor

O operador lógico Xor compara duas ou mais condições. Se exatamente uma das condições for verdadeira, ele retornará Verdadeiro. Se nenhuma das condições for verdadeira, ou se mais de uma for verdadeira, ele retornará Falso. Aqui está o código do exemplo:

Dim intA As Integer
Dim intB As Integer
Dim blnResultado As Boolean

intA = 5
intB = 10

If intA = 5 Xor intB = 5 Then
    blnResultado = True
Else
    blnResultado = False
End If

Neste exemplo, queremos verificar se exatamente um dos valores (intA ou IntB) é igual a 5. Se apenas uma condição for verdadeira, o valor do booleano blnResultado será Verdadeiro, caso contrário, será Falso.

Primeiro, definimos o valor de intA como 5 e intB como 10:

intA = 5
intB = 10

Depois disso, usamos o operador Xor na instrução If para verificar se algum dos valores é igual a 5:

If intA = 5 Xor intB = 5 Then
    blnResultado = True
Else
    blnResultado = False
End If

Como o valor de intA é 5 e o de intB é 10, o blnResultado retorna Verdadeiro.

exemplo operador xor

Imagem 4. Uso do operador lógico Xor no VBA

Operador Is

O operador Is testa se duas variáveis de objeto armazenam o mesmo objeto.

Vamos dar uma olhada em um exemplo. Aqui, atribuiremos duas planilhas aos objetos de planilha rng1 e rng2, testando se os dois objetos de planilha armazenam a mesma planilha:

Sub CompararObjetos()
Dim ws1 As Worksheet, ws2 As Worksheet

Set ws1 = Sheets("Planilha1")
Set ws2 = Sheets("Planilha2")

If ws1 Is ws2 Then
    MsgBox "Mesma Planilha"
Else
    MsgBox "Planilhas Diferentes"
End If

End Sub

É claro que os objetos de planilha não são os mesmos, portanto, “Planilhas Diferentes” é retornado.

Operador Like

O operador Like pode comparar duas cadeias de caracteres para obter correspondências inexatas. Este exemplo testará se uma cadeia de caracteres começa com “Sr.”

Sub Exemplo_Like()

Dim strNome As String
Dim blnResultado As Boolean

strNome = "Sr. Michael James"

If strNome Like "Sr*" Then
    blnResultado = True
Else
    blnResultado = False
End If

End Sub
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