Comparação de strings em VBA – StrComp

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 4, 2023

No VBA, você pode comparar duas sequências de caracteres usando a função StrComp. Neste tutorial, você aprenderá a usar essa função com diferentes métodos de comparação.

Se você quiser aprender a usar o operador like do VBA para comparar correspondências inexatas, clique aqui: VBA Operador Like.

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

Uso da Função StrComp para Comparar Duas Sequências de Caracteres

A função StrComp recebe duas sequências de caracteres e o método de comparação como argumentos. Há três métodos de comparação:

  • vbBinaryCompare – compara duas sequências de caracteres binárias (diferencia maiúsculas de minúsculas);
  • vbTextCompare – compara duas sequências de caracteres como textos (não diferencia maiúsculas de minúsculas);
  • vbDatabaseCompare – esse método está disponível somente no Microsoft Access e não no VBA.

Por padrão, a função usa o método binário. Se omitirmos esse argumento, a função fará distinção entre maiúsculas e minúsculas.

A função retorna os seguintes resultados:

  • 0 – se as sequências de caracteres forem iguais;
  • -1 – se a sequência de caracteres 1 for menor que a sequência de caracteres 2;
  • 1 – se a sequência de caracteres 1 for maior que a sequência de caracteres 2;
  • Nulo – se uma das sequência de caracteres estiver vazia.

Aqui está o código de exemplo:

Dim intResultado As Integer

intResultado = StrComp("Computador", "Computador")

Neste exemplo, queremos verificar se as sequências de caracteres “Computador” e “Computador” são iguais, usando o método de comparação padrão (binário). O resultado da função está na variável intResultado. Como você pode ver na imagem, as duas sequências de caracteres são iguais, portanto, o intResultado tem valor 0.

comparar strings simples

Imagem 1. Uso da função StrComp com o método binário no VBA

Uso da Função StrComp com o Método Binário e Textual

Agora você verá a diferença entre usar o método binário e o textual. O método binário tem um número binário para cada caractere, portanto, as letras maiúsculas e minúsculas são caracteres diferentes nesse método. Por outro lado, o método textual considera “S” e “s” como as mesmas letras. Se quiser tornar a função insensível a maiúsculas e minúsculas, você precisará definir o terceiro argumento como vbTextCompare. Aqui está o código:

Dim intResultado1 As Integer
Dim intResultado2 As Integer  

intResultado1 = StrComp("Computador", "CompuTador")

intResultado2 = StrComp("Computador", "CompuTador", vbTextCompare)

Queremos comparar as sequências de caracteres “Computador” e “CompuTador”, usando os dois métodos.

Na variável intResultado1, obteremos o valor com o método binário, enquanto a variável intResultado2 obterá o valor com o método textual. Você pode ver os valores dessas duas variáveis:

compara strings duas sequencias

Imagem 2. Uso da função StrComp com método binário e textual

O valor de intResultado1 é 1, o que significa que duas sequências de caracteres são diferentes para o método binário. Para o método textual, essas duas sequências de caracteres são iguais, portanto, o valor de intResultado2 é 0.

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