OFF97: Custom Office Assistant Balloon Cannot Be Dismissed (164681)



The information in this article applies to:

  • Microsoft Excel 97 for Windows
  • Microsoft Word 97 for Windows
  • Microsoft PowerPoint 97 for Windows

This article was previously published under Q164681

SYMPTOMS

In the programs listed at the beginning of this article, if you run a Microsoft Visual Basic for Applications macro that displays a custom Microsoft Office Assistant balloon, the following problems may occur:
  • When you click OK in Microsoft Excel 97, the Office Assistant displays a balloon that contains an error message similar to the following:
    Microsoft Excel
    The macro 'Module1.YourCustomMacro' cannot be found.
    When you click OK, the custom Office Assistant balloon appears again.
  • When you click OK in Microsoft Word 97 or Microsoft PowerPoint 97, the custom Office Assistant balloon remains on the screen, regardless of the number of times you click OK.
  • If you display the Office Assistant again, and then attempt to close it, the custom Office Assistant balloon appears. This behavior continues to occur until you quit and restart the program.

CAUSE

These problems may occur when the following conditions are true:
  • In the Visual Basic macro, you use the Callback property to set the name of a macro to run when a modeless custom Office Assistant balloon is displayed. -and-

  • You set the Callback property to refer to a nonexistent macro, or you incorrectly use the Callback property to refer to a macro that does exist. -and-

  • You run the Visual Basic macro, which then displays the custom Office Assistant balloon.

RESOLUTION

To prevent these problems from occurring, do the following:

  • Verify that you did not misspell the macro name that the Callback property refers to.

    For example, if you set the Callback property to refer to a macro named "Hello," make sure that the Hello macro exists in a project for the document.
  • If the macro that the Callback property refers to is in a different module in the same document, add the module name to the beginning of the macro name.

    For example, if you want the Callback property to refer to the macro named "Goodbye" in Module3, set the Callback property to Module3.Goodbye.

    NOTE: This requirement does NOT apply to Microsoft Excel 97.
If one of these problems already occurred, quit and restart the program in which the problem occurs. After you do this, modify the Visual Basic for Applications code so that the Callback property refers to the correct macro name in a valid location.

Note that you can dismiss the Office Assistant window by clicking the Close button in the upper-right corner of the Office Assistant window while the custom Office Assistant balloon is displayed.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. In the Office 97 programs, you can create and display custom Office Assistant balloons. To do this, use Visual Basic for Applications macros that are similar to the following examples:
   ' Both macros are contained in the same module, Module1.
   Sub BalloonTest()
 
       Dim Bln As Balloon
       Set Bln = Assistant.NewBalloon
       With Bln
           .Heading = "Heading"
           .Text = "Some text."
           .Mode = msoModeModeless   ' Make the balloon modeless.
           .Callback = "Goodbye"     ' Run this macro when OK is clicked.
           .Show                     ' Display the balloon.
       End With
 
   End Sub
 
   Sub Goodbye(Bln As Balloon, iBtn As Long, iPriv As Long)
       Assistant.Animation = msoAnimationSearching
       MsgBox "Goodbye!"
       Bln.Close
   End Sub
				
When you run the BalloonTest Sub procedure, the Office Assistant window appears and displays the custom balloon. When you click OK in the balloon, the Goodbye Sub procedure runs and displays a message box. When you dismiss the message box, the Office Assistant balloon disappears. This behavior is correct.

If you set the Callback property so that it refers to a misspelled macro name or an incorrect location, the problem described in this article occurs.

NOTE: In Microsoft Word 97 and Microsoft PowerPoint 97, if you set the Callback property to refer to a macro that exists in another module, you must specify the module name before the macro name. For example, if you move the macro Goodbye to Module3, change the code to the following:
  .Callback = "Module3.Goodbye"
				
If you do not specify the module name, the problem occurs when you display the custom Office Assistant balloon. In Microsoft Excel 97, this is not required if the macro exists in the same workbook.

Modification Type:MajorLast Reviewed:6/18/2005
Keywords:kbcode kbinterop kbprb kbProgramming KB164681