Please Note: This article is written for users of the following Microsoft Word versions: 2007 and 2010. If you are using an earlier version (Word 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Word, click here: Declaring Variables.
by Allen Wyatt
(last updated April 2, 2013)
If you have ever programmed any macros, you are probably familiar with how you define variables using the Dim keyword. For instance, you can define an integer variable with the name MyVar as follows:
Dim MyVar As Integer
This is very straightforward, and will work fine in your code. You may be tempted to define multiple variables per line, however:
Dim x, y, z As Integer
In some versions of the BASIC language, this will define and initialize three variables, each as an integer. In VBA it also appears to run properly, and no error is generated. However, there is a small problem—only the last variable (z) is actually defined as an integer. You can see how this works by using the following code:
Sub DimTest() Dim x, y, z As Integer MsgBox "x is type " & VarType(x) MsgBox "y is type " & VarType(y) MsgBox "z is type " & VarType(z) End Sub
When you run the macro, the first two message boxes that pop up show that the variable type for x and y are 0, which means uninitialized. Only the last message box (for z) shows a variable type of 2, meaning an integer.
The solution is to make sure that you declare your variables one per line, or using the full syntax for each variable, as in the following:
Dim x As Integer, y As Integer, z As Integer
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (12098) applies to Microsoft Word 2007 and 2010. You can find a version of this tip for the older menu interface of Word here: Declaring Variables.
The First and Last Word on Word! Bestselling For Dummies author Dan Gookin puts his usual fun and friendly candor back to work to show you how to navigate Word 2013. Spend more time working and less time trying to figure it all out! Check out Word 2013 For Dummies today!
When creating macros, you often need to convert a text string that contains numbers into actual numeric values. You do this ...Discover More
Word apparently has a bug in it that makes it very difficult to remove a shortcut key previously associated with a macro. ...Discover More
You may have a need to find out how many times a certain text string occurs within a document. You can find out manually ...Discover More
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."