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

Setting Fraction Bar Overhang Spacing in the Equation Editor

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

 

When True is Not True

Summary: An examination of different ways that True and False values are handled in VBA and WordBasic. (This tip works with Microsoft Word 6, Word 95, Word 97, Word 2000, Word 2002, and Word 2003.)

When programming macros, it is often necessary to determine the result of a status or to set a value. This is most often done with standard values, such as TRUE and FALSE. Over the years, these have developed into generally accepted numeric values on which programmers regularly use. For instance, if you are programming in C or C++, you know that TRUE is a value of -1 and FALSE is a value of 0.

Unfortunately, Word macros have not always been so consistent. Until VBA, there was no consistent definition of TRUE or FALSE. For instance, you can use the following in VBA and get the expected results:

Test = True
MsgBox Int(Test)

This displays the value of Test, which has been set to TRUE (-1). Now try the same thing in WordBasic:

Test = True
MsgBox Str$(Int(Test))

When you run this, the value 0 is displayed. This is because WordBasic has no pre-defined values for TRUE or FALSE. You can assign these at the beginning of your WordBasic macros so you can then use them in the main body of the macro, as in the following:

TRUE = -1
FALSE = 0

You must be careful, however, that you don't expect WordBasic to always return TRUE or FALSE from functions. Sometimes WordBasic returns 1 for TRUE and sometimes it returns -1, depending on the function being used. VBA is more consistent, with FALSE always being equal to 0 and TRUE always being equal to -1. The following can help you remember the various values for TRUE and FALSE:

 TRUE FALSE
WordBasic 1, -1 0
VBA -1 0
VB -1 0
C/C++ -1 0

One way around the discrepancy in WordBasic is to never use TRUE, but always use NOT(FALSE).

Tip #124 applies to Microsoft Word versions: 6 | 95 | 97 | 2000 | 2002 | 2003

Tremendous Table Tips! We often take tables for granted, but Word includes some very powerful ways you can present your tabular data. Discover how to make your tables better, easier to understand, and more effective.
 
Check out WordTips: Terrific Tables today!