Microsoft KB Archive/154763

= Microsoft Knowledge Base =

Macros That Accept Arguments Not Listed in Macro Dialog Box
Last reviewed: June 23, 1997

Article ID: Q154763

The information in this article applies to:


 * Microsoft Excel for Windows, versions 5.0, 5.0c
 * Microsoft Excel for Windows 95, versions 7.0, 7.0a
 * Microsoft Excel for the Macintosh, versions 5.0, 5.0a

SYMPTOMS
When you click Macro on the Tools menu, your macro may not appear in the Macro dialog box.

CAUSE
If another macro calls your macro as a subroutine and passes arguments to it, your macro will not appear in the Macro dialog box.

STATUS
This behavior is by design of Microsoft Excel.

MORE INFORMATION
Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support engineers can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

Visual Basic Code Example
This Visual Basic code example illustrates how to pass arguments from one subroutine to another.

 Insert a Visual Basic module into a new Microsoft Excel workbook.  Type the following code into the module sheet: Sub testme(a As Integer, b As Integer) MsgBox a + b  End Sub

Sub call_testme ' Declare variable. Dim a As Integer testme 1, 2 End Sub   On the Tools menu, click Macro. The testme macro is not listed in the Macro dialog box.   Double-click the call_testme macro in the Macro dialog box. A message box that displays the number "3" (without quotation marks) appears on the screen. 

NOTE: Functions also accept arguments that are passed to them. Functions that accept arguments also may not appear in the Macro dialog box. The main difference between a function and a subroutine that accepts arguments is that a function can be called directly from a worksheet formula.