Folosirea funcției StrComp pentru a compara Apples cu Apples

Așa s-a văzut deja, se poate compara un element cu alt element utilizând pur și simplu operatorul =:

If 1 = 1 Then MsgBox "Unu este egal cu unu."

Această comparație simplă folosind operatorul = funcționează și cu două șiruri, ca în cea de a doua linie de mai jos:

strPet = InputBox("Animalul tau de companie este caine sau pisica?", "Pet")
If strPet = "Caine" Then MsgBox "Nu acceptam caini."

Problema cu acest cod așa cum este scris este că modul cum scrise șirurile trebuie să se potrivească exact, pentru ca VBA să le considere egale. Dacă utilizatorul introduce câine sau CAINE (ca să nu mai vorbim de cAINE, caINE, cAINe sau CainE) în loc de caine, condiția nu este îndeplinită. Din nou, se poate permite utilizatorilor o varietate de răspunsuri corecte – fără a se impune reguli de capitalizare și de punctuație inutile.

Pentru a accepta variații de litere mari și mici, se poate folosi operatorul Or:

If Pet = "Caine" Or Pet = "caine" Or Pet = "CAINE" Or Pet = "caini" _
Or Pet = "Caini" or Pet = "CAINI" Then MsgBox _
"Nu acceptam caini."

Însă un asemenea cod devine prea stufos. Se poate modifica modul în care este scris șirul pentru a vedea dacă se potrivește cu șirul din cod, dar este mai simplu să se folosească funcția StrComp, pentru mai multă simplitate. Sintaxa pentru StrComp este următoarea:

StrComp(string1, string2 [, compare])

Aici, string1 și string2 sunt argumente obligatorii de tip String care specifică șirurile care vor fi comparate, iar compare este un argument opțional, care specifică compararea textuală (vbTextCompare) sau cea binară (vbBinaryCompare).

Următoarea instrucțiune folosește StrComp pentru a rezolva problema animalelor de companie o dată pentru totdeauna:

If StrComp(Pet, "caine", vbTextCompare) = 0 Then _
     MsgBox "Nu acceptam caini."