La compararea lucrurilor din VBA se folosesc operatori de comparație care specifică tipul de comparare dorit: dacă o variabilă este egală, mai mare sau mai mică decât alta etc.
VBA suportă operatorii de comparație prezentați în tabelul următor:
Primii șase operatori de comparare sunt simpli. Expresiile numerice sunt evaluate ca și numere. Expresiile alfanumerice sunt evaluate în ordine alfabetică: de exemplu, dacă ax este înainte de handle în ordine alfabetică, este considerat mai mic decât ("less than") handle.
Deci, "ax" < "handle" va fi evaluat ca adevărat - True. Iar rezultatul evaluării (True sau False) determină ce se petrece mai departe în blocul If...Then. (Altfel zis, codul din secțiunea Then este executat când ceva este adevărat - True. Și nu este executat dacă ceva este fals - False. Ca exemplul de fiecare zi: Dacă (If) plouă, atunci (Then) se ia umbrela. În caz contrar (Else), nu se ia.)
Expresiile compuse (numere și litere) sunt evaluate în ordine alfabetică: Office 97 este mai mare decât ("greater than") Office 2016 pentru că 9 este mai mare decât 2.
Is, al șaptelea operator de comparare, este mai puțin familiar și rar folosit. Se folosește pentru a compara variabilele obiect și a stabili dacă cele două variabile obiect reprezintă același obiect (un obiect care are atribuit un nume, nu unul cum ar fi document sau domeniu - range).
De exemplu, următoarele instrucțiuni declară două obiecte - objTest1 și objTest2 - și atribuie fiecărui element ActiveDocument.Paragraphs(1).Range, un interval care constă din primul paragraf din documentul activ din Word. Următoarea instrucțiune compară cele două obiecte și returnează False în caseta de mesaj pentru că cele două obiecte sunt diferite, chiar dacă conținutul lor este același:
Dim objTest1 As ObjectDim objTest2 As ObjectSet objTest1 = ActiveDocument.Paragraphs(1).RangeSet objTest2 = ActiveDocument.Paragraphs(1).Range'urmatoarea instructiune returneaza False pentru ca obiectele sunt diferiteMsgBox objTest1 Is objTest2Însă dacă ambele variabile de obiect se referă la același obiect, comparația Is returnează True, ca în exemplul următor în care ambele objTest1 și objTest2 se referă la variabila obiect objTest3:
Dim objTest1 As Object Dim objTest2 As Object Dim objTest3 As ObjectSet objTest3 = ActiveDocument.Paragraphs(1).RangeSet objTest1 = objTest3Set objTest2 = objTest3'urmatoarea instructiune returneaza True pentru ca'objTest1 si objTest2 se refera la acelasi obiectMsgBox objTest1 Is objTest2De reținut că atunci când se folosește Is, nu se compară conținutul variabilelor obiect, ci obiectul la care se referă comparația.