WD: Calling One Macro Routine or Function from Another Macro

Article translations Article translations
Article ID: 81414 - View products that this article applies to.
This article was previously published under Q81414
Expand all | Collapse all

On This Page

SUMMARY

In Microsoft Word for Windows, you can call macro subroutines and functions that are defined in one macro from within another macro. You can use this technique to create libraries of common routines and avoid having to copy or rewrite procedures you use often.

MORE INFORMATION

Word97

For more information about calling macro subroutines and functions, while in the Visual Basic for Applications Editor click the Office Assistant, type "Call," click Search, and then click to view "Call Statement."

All other versions of Word listed above

Subroutine:

To call a macro subroutine from within another macro, use the following syntax:
MacroName.RoutineName
MacroName is the name of the macro containing the routine, and RoutineName is the name of the routine you want to use. The template containing the library routine, or a document to which the template is attached, must be open when the routine is called. Routines stored in the NORMAL.DOT template are always available. For example, if you create a macro called Lib1, which contains the subroutine MyBeep, you can call MyBeep from other macros. The following is the subroutine MyBeep:
   Sub MyBeep
      Beep : Beep : Beep
      For t = 1 to 100 : Next          'Pause
      Beep : Beep : Beep
   End Sub
				
The following example illustrates how you can use the MyBeep subroutine in a macro called SwitchToDotPath:
   Sub MAIN
      MsgBox "This is a test"
      Lib1.MyBeep
   End Sub
				
Function:

The syntax for using a function that you defined in another macro is similar to that used for calling a subroutine. For example, if you define a function called MyDateTime$(time$) in the Lib1 macro library, you could call that function from another macro, titled CheckDateTime. The following is the MyDateTime$(time$) function:
   Function MyDateTime$(time$)
      mDate$ = Date$()
      mTime$ = Time$()
      MyDateTime$ = mDate$ + " " + mTime$
   End Function
				
You can call the MyDateTime$(time$) function from the following macro, called CheckDateTime:
   Sub Main                          'CheckDateTime macro
      CheckDateTime$ = "91.09.30 11:50 AM"
      ThisDateTime = Lib1.MyDateTime$(ThisDateTime$)
      Print ThisDateTime$
      If ThisDateTime$ = CheckDateTime$ Then
         Lib1.MyBeep
         MsgBox "It's time for lunch!"
      Else
         MsgBox "It's not time for lunch yet!"
      EndIf
   End Sub
				

REFERENCES

"Using WordBasic," by WexTech Systems and Microsoft, pages 58-59

Properties

Article ID: 81414 - Last Review: November 16, 2006 - Revision: 2.3
APPLIES TO
  • Microsoft Word 2.0 Standard Edition
  • Microsoft Word 2.0a
  • Microsoft Word for Windows 2.0b
  • Microsoft Word 2.0c
  • Microsoft Word 6.0 Standard Edition
  • Microsoft Word 6.0a
  • Microsoft Word 6.0c
  • Microsoft Word 95 Standard Edition
  • Microsoft Word 95a
  • Microsoft Word 97 Standard Edition
  • Microsoft Word 6.0 for Macintosh
  • Microsoft Word 6.01 for Macintosh
  • Microsoft Word 6.01 for Macintosh
Keywords: 
kbmacro KB81414
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com