+ operator
Used to sum two numbers.
Syntax
result = expression1 + expression2
The + operator syntax has these parts:
Part | Description |
---|---|
result | Required; any numeric variable. |
expression1 | Required; any expression. |
expression2 | Required; any expression. |
Remarks
When you use the + operator, you may not be able to determine whether addition or string concatenation will occur. Use the & operator for concatenation to eliminate ambiguity and provide self-documenting code.
If at least one expression is not a Variant, the following rules apply.
If | Then |
---|---|
Both expressions are numeric data types (Byte, Boolean, Integer, Long, Single, Double, Date, Currency, or Decimal) | Add. |
Both expressions are String | Concatenate. |
One expression is a numeric data type and the other is any Variant except Null | Add. |
One expression is a String and the other is any Variant except Null | Concatenate. |
One expression is an Empty Variant | Return the remaining expression unchanged as result. |
One expression is a numeric data type and the other is a String | A Type mismatch error occurs. |
Either expression is Null | result is Null. |
If both expressions are Variant expressions, the following rules apply:
If | Then |
---|---|
Both Variant expressions are numeric | Add. |
Both Variant expressions are strings | Concatenate. |
One Variant expression is numeric and the other is a string | Add. |
For simple arithmetic addition involving only expressions of numeric data types, the data type of result is usually the same as that of the most precise expression. The order of precision, from least to most precise, is Byte, Integer, Long, Single, Double, Currency, and Decimal. The following are exceptions to this order.
If | Then result is |
---|---|
A Single and a Long are added | A Double. |
The data type of result is a Long, Single, or Date variant that overflows its legal range | Converted to a Double variant. |
The data type of result is a Byte variant that overflows its legal range | Converted to an Integer variant. |
The data type of result is an Integer variant that overflows its legal range | Converted to a Long variant. |
A Date is added to any data type | A Date. |
If one or both expressions are Null expressions, result is Null. If both expressions are Empty, result is an Integer. However, if only one expression is Empty, the other expression is returned unchanged as result.
Note
The order of precision used by addition and subtraction is not the same as the order of precision used by multiplication.
Example
This example uses the + operator to sum numbers. The + operator can also be used to concatenate strings. However, to eliminate ambiguity, you should use the & operator instead. If the components of an expression created with the + operator include both strings and numerics, the arithmetic result is assigned. If the components are exclusively strings, the strings are concatenated.
Dim MyNumber, Var1, Var2
MyNumber = 2 + 2 ' Returns 4.
MyNumber = 4257.04 + 98112 ' Returns 102369.04.
Var1 = "34": Var2 = 6 ' Initialize mixed variables.
MyNumber = Var1 + Var2 ' Returns 40.
Var1 = "34": Var2 = "6" ' Initialize variables with strings.
MyNumber = Var1 + Var2 ' Returns "346" (string concatenation).
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.