WD: CALL Statement Cannot Accept Variable Argument

ID: Q94734

The information in this article applies to:

SYMPTOMS

In Word, you can use the WordBasic CALL statement to run another macro; however, you cannot specify the name of the subroutine by using a string variable or concatenated strings.

WORKAROUND

In cases where the name of the macro originates from a string variable (such as when you type information in a dialog box), you can use the following macro code:

If A$ contains the name of the macro, use this statement:

   ToolsMacro .Name = A$, .Run

In cases where you call a literal string such as "AutoExec.Main", you must remove the quotation marks, as shown in the following example:

   CALL AutoExec.Main

NOTE: You cannot pass parameters to a macro by using the Run method.

MORE INFORMATION

The CALL statement uses the following syntax to call another subroutine

   CALL <subroutinename>

where <subroutinename> is the name of the subroutine.

In WordBasic, you can also use the CALL statement to run another macro using the following syntax:

   CALL macroname.Main   'runs entire macro (the Main subroutine)

In all cases, the argument for the CALL statement must be explicitly defined. For example, both

   CALL A$

    -and-

   CALL "AutoExec.main"

cause the error:

WordBasic Error 124: Undefined Sub or Function.

Additional query words: function sub routine err msg errmsg macword

Keywords          : kbmacro winword macword word6 winword2 
Version           : WINDOWS:2.0,2.0a,2.0a-CD,2.0b,2.0c,6.0,6.0a,6.0c,7.0,7.0a; MACINTOSH:6.0,6.0.1,6.0.1a
Platform          : MACINTOSH Win95 WINDOWS winnt
Issue type        : kbinfo

Last Reviewed: February 3, 1998