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

Printing On Both Sides of the Paper

Turning Off AutoComplete for Dates

Ordering Search and Replace

Understanding Auto Line Spacing

Adding Comments to Your Document

Conditional Calculations in Word

Determining Word Frequency

 

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

Create and Merge! Using Word's mail merge tool you can quickly and easily combine data from a variety of data sources to create great individualized documents that incorporate your data in ways that you control. WordTips: Mail Merge Magic is an invaluable source for learning how to harness the full power of Word's mail merging capabilities.
 
Check out WordTips: Mail Merge Magic today!