Prevent VBA Case Sensitive – Option Compare Text

While working in VBA, you often need to compare strings. By default, VBA is case sensitive, so if you compare two same texts and one of them is in upper case and other in lower case, VBA will consider them as different texts. In this tutorial, you will see how to prevent VBA from being case sensitive.

Making VBA Case Insensitive

In order to make VBA case-insensitive, you need to put Option Compare Text at the beginning of the module. First, we will look at the standard VBA behavior without this option set. This is the code:

If Sheet1.Range("A1").Value = Sheet1.Range("B1").Value Then
    MsgBox "Two texts are the same"
Else
    MsgBox "Two texts are different"
End If

In the example, we want to compare the strings from the A1 and B1. If the strings are equal, we will return the message box with the message “Two texts are the same”. If they are not equal, we will return the message “Two texts are different.

Image 1. Comparing the strings without the Option Compare Text

 

As you can see in the picture, both texts are the same, but the first one is in upper case, while the second is in lower case. Because of that, VBA considers them different and returned this message.

Option Compare Text

Public Sub CaseSensitiveTest()

    If Sheet1.Range("A1").Value = Sheet1.Range("B1").Value Then
        MsgBox "Two texts are the same"
    Else
        MsgBox "Two texts are different"
    End If

End Sub

Now we will add Option Compare Text at the beginning of the module and see the difference. Here is the code. We run the code on the same example:

Image 2. Comparing the strings with the Option Compare Text

 

Now, when the Option Compare Text is set, the VBA becomes case insensitive and considers these two texts the same.

Comparing Text

If you don’t declare Option Compare Text, you can convert string cases in order to make case-insensitive comparisons. This is possible by UCase, LCase or StrConv function. You can find out more about this here: VBA Upper, Lower, and Proper Case – Case Functions