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.

  1. Insert a Visual Basic module into a new Microsoft Excel workbook.

  2. 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
    
    

  3. On the Tools menu, click Macro.

    The testme macro is not listed in the Macro dialog box.

  4. 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.

REFERENCES

For more information about subroutines click the Index tab in Microsoft Excel Help, type the following text

   subroutines

and then double-click the selected text to go to the "Writing a Sub procedure" topic.


Additional query words: 5.00 5.00a 5.00c 7.00 7.00a vba subprocedure
Keywords : kbcode kbprg PgmOthr
Version : 5.0 5.0c 7.0 7.0a | 5.0
Platform : MACINTOSH WINDOWS


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: June 23, 1997
©1997 Microsoft Corporation. All rights reserved. Legal Notices.