Impedir que o VBA Diferencie Maiúsculas de Minúsculas – Option Compare Text

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on August 7, 2023

Ao trabalhar no VBA, muitas vezes você precisa comparar cadeias de caracteres. Por padrão, o VBA diferencia maiúsculas de minúsculas, portanto, se você comparar dois textos iguais e um deles estiver em maiúsculas e o outro em minúsculas, o VBA os considerará como textos diferentes. Neste tutorial, você verá como evitar que o VBA diferencie maiúsculas de minúsculas.

Como Tornar o VBA Insensível a Maiúsculas e Minúsculas

Para tornar o VBA insensível a maiúsculas e minúsculas, você precisa colocar Option Compare Text no início do módulo. Primeiro, veremos o comportamento padrão do VBA sem essa opção definida. Este é o código:

If Planilha1.Range("A1").Value = Planilha1.Range("B1").Value Then
 MsgBox "Dois textos são iguais"
Else
 MsgBox "Dois textos são diferentes"
End If

No exemplo, queremos comparar as cadeias de caracteres de A1 e B1. Se as cadeias de caracteres forem iguais, retornaremos a caixa de mensagem com a mensagem “Dois textos são iguais”. Se não forem iguais, retornaremos a mensagem “Dois textos são diferentes”.

dois textos diferentes

Imagem 1. Comparação das cadeias de caracteres sem o Option Compare Text

 

Como você pode ver na imagem, os dois textos são iguais, mas o primeiro está em letras maiúsculas, enquanto o segundo está em letras minúsculas. Por esse motivo, o VBA os considera diferentes e retorna essa mensagem.

Agora, adicionaremos o Option Compare Text no início do módulo e veremos a diferença. Aqui está o código. Executamos o código no mesmo exemplo:

Option Compare Text

Public Sub TesteMaisuculasMinusculas()

 If Planilha1.Range("A1").Value = Planilha1.Range("B1").Value Then
 MsgBox "Dois textos são iguais"
 Else
 MsgBox "Dois textos são diferentes"
 End If

End Sub

 

dois textos iguais

Imagem 2. Comparação das cadeias de caracteres com o Option Compare Text

Agora, quando a Option Compare Text é definido, o VBA não diferencia maiúsculas de minúsculas e considera esses dois textos iguais.

Comparação de Texto

Se você não declarar Option Compare Text, poderá converter os casos das cadeias de caracteres para fazer comparações sem distinção entre maiúsculas e minúsculas. Isso é possível por meio das funções UCase, LCase ou StrConv. Você pode saber mais sobre isso aqui: VBA Upper, Lower, and Proper Case – Funções Case

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