Word.Tips.Net Welcome toWord.Tips.Net

Helpful Links

Tips.Net Home
WordTips Home

Ask a Word Question
Make a Comment

Tips.Net Store

WordTips FAQ
WordTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
WordTips Site

Newest Tips

Arranging Document Windows

Specifying a Backup Location

Controlling Chart Gridlines

Merging Table Cells

Collapsing and Expanding Subdocuments

Zooming With the Keyboard

Initiating a New Search

 

Declaring Variables

Summary: Declaring variables in a macro is good programming practice. Here's how to do it and how to make sure they are all declared. (This tip works with Microsoft Word 97, Word 2000, Word 2002, Word 2003, and Word 2007.)

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

Tip #731 applies to Microsoft Word versions: 97 | 2000 | 2002 | 2003 | 2007

More Power! For some people, the prospect of creating Word macros can be scary. WordTips: The Macros can help you conquer your fears and you'll discover you're much more confident and productive as you make Word do exactly what you want. This is an invaluable source for learning macros. You are introduced to the topic in bite-sized chunks, pulled from past issues of WordTips. Learn at your own pace, exactly the way you want.
 
Check out WordTips: The Macros today!