VBA – All Operators Explained

This tutorial will explain the operators used in VBA.

There are a few types of operators in VBA – Arithmetic Operators, Comparison Operators, Logical Operators and Concatenation Operators.

Arithmetic Operators

These operators allow us to use VBA as a calculator – to add, subtract, multiply, divide and to calculate to the power of (exponentiation).

Arithmetic Operator

Explanation
+

Addition

Subtraction

*

Multiplication

/

Division
^

Exponentiation

Addition

The addition or plus sign (+) operator is used to add numbers together in VBA.

Sub TestAdd ()
  Dim Result As double 
  Result = 10 + 20
  Msgbox "The answer is " & Result
End Sub

VBAOperators Add

Subtraction

The subtraction or minus sign () operator is used to subtract numbers from each other in VBA.

Sub TestMinus ()
 Dim Result As Double
 Dim A As Integer
 Dim B As  Integer
 A = 20
 B = 10 
 Result = A - B
 Msgbox "The answer is " & Result
End Sub

VBAOperators Minus

Multiplication

The Multiplication (*) operator is used to multiply numbers together in VBA.

Sub TestMultipy ()
 Dim Result As Double 
 Dim A As Integer
 Dim B As Integer
 A = 20
 B = 10 
 Result = A * B
 Msgbox "The answer is " & Result
End Sub

Division

The Division (/) operator is used to divide numbers in VBA

Sub TestDivision ()
 Dim Result As Double 
 Dim A As Integer
 Dim B As Integer
 A = 20
 B = 4
 Result = A/ B
 Msgbox "The answer is " & Result
End Sub

VBAOperators Divide

Exponentiation (to the Power of)

The exponentiation  (^) operator is used to calculate a value to the power of a number.

Sub TestDivision ()
 Dim Result As Double 
 Dim A As Integer
 Dim B As Integer
 A = 2
 B = 4
 Result = A ^ B
 Msgbox "The answer is " & Result
 End Sub

VBAOperators PowerOf

Combining Operators

If we end up having a calculation that combines these operators, remember that the BODMAS (or PEDMAS) order of operators will apply.  In other words the calculation will be done in the order of brackets (parenthesis), power of (exponentiation) , division, multiplication, addition and then subtraction.

Sub TestOrder ()
 Dim Result As Double 
 Dim A As Integer
 Dim B As Integer
 Dim C As Integer
 Dim D As Integer
 Dim E As Integer
 A = 2
 B = 10
 C = 4
 D = 6
 E = 2 
 Result = A+B/C*D^E
 Msgbox "The answer is " & Result 
End Sub

VBAOperators Order

The answer above is 92 – first the 6^2 is calculated (36), then the 10 is divided by 4 (2.5).  Next the 2.5 is multiplied by the 36 and finally the 2 is added last.

If we were to add brackets to this calculation, the answer would differ:

Sub TestOrder ()
 Dim Result As Double
 Dim A As Integer
 Dim B As Integer
 Dim C As Integer
 Dim D As Integer
 Dim E As Integer
 A = 2
 B = 10
 C = 4 
 D = 6 
 E = 2 
 Result = (A+B/C*D)^E
 Msgbox "The answer is " & Result 
End Sub

VBAOperators Brackets

Comparison Operators

Comparison Operators allow you to compare values and return a Boolean True or False as a result.

Comparison Operator

Explanation
=

Equal to

<>

Not Equal to

>

Greater than

>=

Greater than or Equal to

<

Less than

<=

Less than or Equal to

Equal To (=)

This operator checks to see if 2 values are equal.

Sub TestEqual ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 A = 5 
 B = 6
 Result = A=B
 Msgbox "The answer is " & Result
End Sub

VBAOperators EqualTo

As 5 is clearly not equal to 6, the result returned is False.

Not Equal To (<>)

This operator does the opposite of the Equal To operator and check to see if the values are NOT equal.

Sub TestNotEqual ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 A = 5 
 B = 6
 Result = A<>B
 Msgbox "The answer is " & Result
End Sub

VBAOperators NotEqualTo

So in this case the answer will be True as 5 is NOT equal to 6.

Greater Than (>)

The Greater Than operator will check if the first value is greater than the second value.

Sub TestGreaterThan ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 A = 6
 B = 6
 Result = A>B
 Msgbox "The answer is " & Result
End Sub

VBAOperators EqualTo

As 6 is not greater than 6, the result would be False.

Greater than or Equal to (>=)

The Greater Than or Equal To operator will check if the first value is greater than or equal to the second value.

Sub TestGreaterThanEqualTo ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 A = 6
 B = 6 
 Result = A>=B
 Msgbox "The answer is " & Result 
End Sub

VBAOperators NotEqualTo

In this instance, as 6 is equal to 6, the example would return True.

Less Than (<)

The Less Than operator does the opposite of the Greater Than Operator and tests to see if the first value is less than the second value.

Sub TestLessThan ()
 Dim Result As Boolean 
 Dim A As Integer
 Dim B As Integer
 A = 6
 B = 6
 Result = A<B
 Msgbox "The answer is " & Result
End Sub

VBAOperators EqualTo

So in this case, keeping the same values of 6 and 6, the result is once again False as 6 is not less than 6.

Less Than or Equal To (<=)

The Less Than or Equal To operator will check if the first value is less than or equal to the second value.

Sub TestLessThanEqualTo ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 A = 6
 B = 6
 Result = A<=B
 Msgbox "The answer is " & Result 
End Sub

The result of which is of course True as 6 is equal to 6!

Logical Operators

Logical Operators also return a true or false result.  They allow us to combine 2 or more comparison operators.

Logical Operator

Explanation
AND

Tests to see if BOTH conditions are true

OR

Tests to see if ONE of the conditions is True

NOT

Tests to see if a condition if true, but if it is True, will return False

XOR

A combination of NOT and OR logical operators –  will return true if one of the conditions is true.

AND

This allows us to use more than one comparison operator and check that both the conditions tested are true.

Sub TestAnd ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 Dim C As Integer
 A = 5
 B = 6
 C = 7
 If A > B And C > B Then
  Result = True
 Else
  Result = False
 End If
 MsgBox "The answer is " & Result
End Sub

In this instance, as only one condition is true, the result will be False.

OR

This allows us to use more than one comparison operator and check that one of the conditions tested are true.

Sub TestOR ()
  Dim Result As Boolean 
  Dim A As Integer
  Dim B As Integer
  Dim C As Integer
  A = 5
  B = 6
  C = 7
  If A > B And C > B Then 
    Result = True 
  Else 
    Result = False 
  End If 
  MsgBox "The answer is " & Result 
End Sub

In this instance, as one of the conditions is true (7 is greater than 6), the result will be True.

NOT

This will test to see if a condition is True, and if it is True, it will return False, of if the condition is False, it will return True.

Sub TestNOT ()
  Dim Result As Boolean 
  Dim A As Integer
  Dim B As Integer
  Dim C As Integer 
  A = 8 
  B = 6 
  C = 7
  If A > B And Not C > B Then 
    Result = True 
  Else 
    Result = False 
  End If 
  MsgBox "The answer is " & Result 
End Sub

In this instance, as 8 is greater than 6 and 7 is also greater than 6, the AND operator would have returned True.  However adding in the NOT operator means that the result returned is FALSE.

XOR

This operator is the combination of NOT and OR. It is also called logical exclusion. This will return true only if one of the conditions equals true otherwise it returns false.

Sub TestXOR ()
 Dim Result As Boolean
 Dim A As Integer
 Dim B As Integer
 A = 7
 B = 8

 If A > 0 XOR B > 0 Then
   Result = True
 Else
   Result = False
 End If
 MsgBox "The answer is " & Result
End Sub

Concatenation Operators

Concatenation allows us to add 2 of more values together, or to combine strings of text.

Logical Operator

Explanation
+

Is the same as the Addition operator and will add two values or two strings of text

&

Will join together 2 strings of text

 

Sub ConcatenatedStrings ()
 Dim A As String
 Dim B As String
 A = "Hello"
 B = "World"
 MsgBox A + " " + B
End Sub

The example above will give us a message box combining string A and string B, and adding a space between them – this is done using the addition operator (we are adding the strings together).

Sub ConcatenatedStrings ()
 Dim A As String
 Dim B As String
 A = "Hello"
 B = "World"
 MsgBox A & " " & B
End Sub

This example above will do exactly the same thing!  However, we are using the ampersand (&) operator.

If we amend the code that uses the  above to use numbers, it will add the 2 numbers together as in the Arithmetic Operators above

Sub AddNumbers ()
 Dim A As Integer
 Dim B As Integer
 A = 5
 B = 6
 MsgBox A + B
End Sub

VBAOperators Concatenate1

However, if we use the ampersand (&) operator to do this, we will get a very different result!

Sub AddNumbers ()
 Dim A As Integer
 Dim B As Integer
 A = 5
 B = 6
 MsgBox A & B
End Sub

VBAOperators Concatenate2

This is due to the fact that the ampersand (&) operator reads the 5 and the 6 as strings (even through we have declared them to be integers)  and literally joins them together!