XL97: Error Using Evaluate and User-Defined Add-In Function

ID: Q168238

The information in this article applies to:

SYMPTOMS

In Microsoft Excel 97, when you use the Evaluate method in Visual Basic for Applications to retrieve the result of an expression, you may receive the following error message:

   This program has performed an illegal operation and will be shut down.
   If the problem persists, contact the program vendor.

If you click Details, you receive an error message similar to the following

   EXCEL caused an invalid page fault in module EXCEL.EXE at 014f:301b7f65.

and Microsoft Excel quits.

CAUSE

This error message may appear when the following conditions are true:

WORKAROUND

To prevent this problem from occurring, verify that the custom function is not in an add-in file, or break up the mathematical expression text string so that the Evaluate method is executed once for each instance of a custom function.

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

Example

The following example macro uses the Evaluate method with the following string:

   f(1)+f(1)

NOTE: This example assumes that a user-defined function called f() exists in an add-in file.

To use the Evaluate method with the example text string, do the following:

1. Start the Visual Basic Editor, (press ALT+F11).

2. On the Insert menu, click Module.

3. In the Code window for the module, type the following procedure:

      Sub Example()

          MsgBox Evaluate("f(1)") + Evaluate("f(1)")

      End Sub

4. Run the macro.

a message box with a result appears. The results vary depending on how the user-defined function (for example, the f() function) is coded.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

In earlier versions of Microsoft Excel, you receive a Type Mismatch error message if you attempt to evaluate this type of expression for a custom function regardless of whether it is in an add-in file.

For additional information, please see the following articles in the Microsoft Knowledge Base:

   ARTICLE-ID: Q153760
   TITLE     : XL: Error with EVALUATE with More Than One Custom Function

   ARTICLE-ID: Q108517
   TITLE     : XL: Error Getting the Value of a Name in Visual Basic

REFERENCES

For more information about the Evaluate method, click the Office Assistant while in the Microsoft Visual Basic Editor, type "Evaluate Method," click Search, and then click to view "Evaluate Method."

NOTE: If the Assistant is hidden, click the Office Assistant button on the Standard toolbar. If Microsoft Help is not installed on your computer, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q120802
   TITLE     : Office: How to Add/Remove a Single Office
               Program or Component

Additional query words: XL97
Keywords          : kberrmsg xlgpf xladdins 
Version           : 97
Platform          : WINDOWS

Last Reviewed: May 17, 1999