In VBA (Visual Basic for Applications), the StrComp function is used to compare two strings and return a value indicating the result of the comparison. The function can perform a binary comparison or a textual comparison, depending on the specified comparison mode.
The syntax of the StrComp function is as follows:
StrComp(string1, string2, [compare])
string1 is the first string to compare.
string2 is the second string to compare.
compare is optional. It specifies the type of comparison. The value can be:
vbUseCompareOption (-1): Uses the option compare setting.
vbBinaryCompare (0): Performs a binary comparison, which is case-sensitive.
vbTextCompare (1): Performs a textual comparison, which is not case-sensitive.
vbDatabaseCompare (2): Microsoft Access only. It is related to the database sort order.
The result of the StrComp function can be:
-1: string1 is less than string2.
0: string1 is equal to string2.
1: string1 is greater than string2.
Null: Either string1 or string2 is Null.
Here’s an example of using the StrComp function in VBA:
Sub UseStrComp()
Dim result As Integer
Dim string1 As String
Dim string2 As String
string1 = "Hello"
string2 = "hello"
' Perform a binary comparison (case-sensitive)
result = StrComp(string1, string2, vbBinaryCompare)
MsgBox "Binary comparison result: " & result
' Perform a textual comparison (not case-sensitive)
result = StrComp(string1, string2, vbTextCompare)
MsgBox "Textual comparison result: " & result
End Sub
When you run this code, it will show two message boxes. The first one will display the result of the binary comparison, which in this case is -1 because “Hello” is lexically less than “hello” when case is considered. The second message box will show the result of the textual comparison, which will be 0 because when ignoring case, the two strings are considered equal.