Variables in Excel VBA: A variable is a named location in memory that can store a value. Variables are used to store data that is used repeatedly in a macro. For example, you might want to store the name of a workbook or the range of cells that you want to work with.
Data Types in Variables
Excel VBA supports a variety of data types. The most common data types are:
- String: A string is a sequence of characters.
- Integer: An integer is a whole number.
- Long: A long is a long integer.
- Currency: A currency is a number with a decimal point.
- Single: A single is a single-precision floating-point number.
- Double: A double is a double-precision floating-point number.
- Date: A date is a date and time value.
- Object: An object is a reference to another object, such as a worksheet or a workbook.
Excel Variables
First, place a command button on your worksheet and add the code lines shown as below. To execute the code lines, click on the command button in the worksheet.
Integer Variables
Integer variables are used to store whole numbers.
Dim x As Integer
x = 6
Range(“A1”).Value = x |
Result:
Explanation: The first code line declares a variable with name x of type Integer. Next, we initialize x with value 6. Finally, we write the value of x in the cell A1.
String Variables
String variables are used to store text.
Code:
Dim book As String
book = “bible”
Range(“A1”).Value = book |
Result:
Explanation: The first code line declares a variable with name book of type String. Next, we initialize book with the text bible. Always use apostrophes to initialize String variables. Finally, we will write the text of the variable book to cell A1.
Double
A variable of type Double is more accurate than a variable of type Integer and can also store numbers after the comma.
Code:
Dim x As Integer
x = 5.5
MsgBox “value is ” & x |
Result:
But that is not the right value! We initialized the variable with value 5.5 and we get the value 6. What we need is a variable of type Double.
Code:
Dim x As Double
x = 5.5
MsgBox “value is ” & x |
Result:
Note: Long variables have even larger capacity. Always use variables of the right type. As a result, errors are easier to find and your code will run faster.
Boolean
Use a Boolean variable to hold the value True or False.
Code:
Dim continue As Boolean
continue = True
If continue = True Then MsgBox “Boolean variables are cool” |
Result:
Explanation: the first code line declares a variable with name continue of type Boolean. Next, we initialize continue with the value True. Finally, we use the Boolean variable to only display a MsgBox if the variable holds the value True.
Scope of Variables
The scope of a variable is the part of a macro where the variable can be used. There are three types of scope:
- Local scope: A local variable is only available within the procedure where it is declared.
- Module scope: A module variable is available to all procedures in the module where it is declared.
- Project scope: A project variable is available to all procedures in all modules in the project.
Best Practices
Here are some best practices for using variables in Excel VBA:
- Use meaningful names: Give your variables meaningful names that will help you understand what they are used for.
- Declare variables explicitly: Explicitly declare the data type of each variable. This will help prevent errors and make your code more readable.
- Use constants: If you need to use a value that does not change, use a constant instead of a variable. This will improve the performance of your code.
- Initialize variables: Initialize variables with a value when you declare them. This will help prevent errors and make your code more readable.
- Use scope wisely: Use the appropriate scope for each variable. This will help prevent errors and make your code more readable.
Conclusion
Variables are a powerful tool that can be used to store data and make your macros more reusable and efficient. By following the best practices outlined in this article, you can use variables to improve the quality of your Excel VBA code.
Next Chapter: If Then Statement |