Operadores de comparação

Utilizado para comparar expressões.

Sintaxe

resultado = expression1comparisonoperatorexpression2result = object1Isobject2result = stringLikepattern

Os operadores de comparação têm estas partes:

Sair Descrição
resultado Obrigatório; qualquervariável numérica.
expression Obrigatório; qualquer expressão.
operador de comparação Necessário; qualquer operador de comparação.
objeto Necessário; qualquer nome de objeto.
cadeia de caracteres Obrigatório; qualquer expressão de cadeia de caracteres.
padrão Necessário; qualquer expressão de cadeia ou intervalo de carateres.

Comentários

A tabela seguinte contém uma lista dos operadores de comparação e as condições que determinam se o resultado é Verdadeiro, Falso ou Nulo.

Operador Verdadeiro se Falso se Nulo se
< (Menor que) expressão1<expressão2 expressão1>= expressão2 expressão1 ou expressão2 = Nulo
<= (Menor ou igual a) expressão1<= expressão2 expressão1>expressão2 expressão1 ou expressão2 = Nulo
> (Maior que) expressão1>expressão2 expressão1<= expressão2 expressão1 ou expressão2 = Nulo
>= (Maior ou igual a) expressão1>= expressão2 expressão1<expressão2 expressão1 ou expressão2 = Nulo
= (Igual a) expressão1 = expressão2 expressão1<>expressão2 expressão1 ou expressão2 = Nulo
<> (Não igual a) expressão1<>expressão2 expressão1 = expressão2 expressão1 ou expressão2 = Nulo

Observação

Os operadores Is e Like têm uma funcionalidade de comparação específica que difere dos operadores na tabela.

Ao comparar duas expressões, poderá não conseguir determinar facilmente se as expressões estão a ser comparadas como números ou como cadeias de carateres. A tabela seguinte mostra como as expressões são comparadas ou o resultado quando uma das expressões não é uma Variante.

Se Then
Ambas as expressões são tipos de dados numéricos (Byte, Booleano, Número Inteiro, Longo, Único, Duplo, Data, Conversor de Moedas ou Decimal) Efetue uma comparação numérica.
Ambas as expressões são Cadeia Efetue uma comparação de cadeias de carateres.
Uma expressão é um tipo de dados numérico e a outra é uma Variante que é, ou pode ser, um número Efetue uma comparação numérica.
Uma expressão é um tipo de dados numérico e a outra é uma Variante de cadeia que não pode ser convertida num número Ocorre um Type Mismatch erro.
Uma expressão é uma Cadeia e a outra é qualquer Variante, exceto um Nulo Efetue uma comparação de cadeias de carateres.
Uma expressão é Vazia e a outra é um tipo de dados numérico Efetue uma comparação numérica com 0 como expressão Empty .
Uma expressão é Vazia e a outra é uma Cadeia Efetue uma comparação de cadeias de carateres com uma cadeia de comprimento zero ("") como a expressão Vazio .

Se expressão1 e expressão2 forem ambas expressões variantes , o tipo subjacente determina como são comparadas. A tabela seguinte mostra como as expressões são comparadas ou o resultado da comparação, consoante o tipo subjacente da Variante.

Se Then
Ambas as expressões de Variantes são numéricas Efetue uma comparação numérica.
Ambas as expressões variant são cadeias Efetue uma comparação de cadeias de carateres.
Uma expressão variant é numérica e a outra é uma cadeia A expressão numérica é inferior à expressão de cadeia.
Uma expressão de Variante está Vazia e a outra é numérica Efetue uma comparação numérica com 0 como expressão Empty .
Uma expressão variante é Vazia e a outra é uma cadeia Efetue uma comparação de cadeias de carateres com uma cadeia de comprimento zero ("") como a expressão Vazio .
Ambas as expressões de Variante estão Vazias As expressões são iguais.

Quando um Único é comparado a um Duplo, o Duplo é arredondado para a precisão de Single. Se um Conversor de Moedas for comparado com um Único ou Duplo, o Single ou Double é convertido num Conversor de Moedas.

Da mesma forma, quando um Decimal é comparado com um Único ou Duplo, o Single ou Double é convertido num Decimal. Por Conversor de Moedas, qualquer valor fracionário inferior a 0,0001 pode ser perdido; para Decimal, qualquer valor fracionário inferior a 1E-28 pode ser perdido ou pode ocorrer um erro de capacidade excedida. Essa perda de valor fracionário pode fazer com que dois valores se comparem como iguais quando não são.

Exemplo

Este exemplo mostra várias utilizações de operadores de comparação, que utiliza para comparar expressões.

Dim MyResult, Var1, Var2
MyResult = (45 < 35)    ' Returns False.
MyResult = (45 = 45)    ' Returns True.
MyResult = (4 <> 3)    ' Returns True.
MyResult = ("5" > "4")    ' Returns True.

Var1 = "5": Var2 = 4    ' Initialize variables.
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 5: Var2 = Empty
MyResult = (Var1 > Var2)    ' Returns True.

Var1 = 0: Var2 = Empty
MyResult = (Var1 = Var2)    ' Returns True.

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.