Microsoft KB Archive/119378

{|
 * width="100%"|

XL5: Excel Displays Alerts When Activated Using CreateObject

 * }

-

The information in this article applies to:


 * Microsoft Excel for Windows, versions 5.0, 5.0c
 * Microsoft Visual Basic, version 3.0

-

SYMPTOMS
When you use the CreateObject function in a Visual Basic version 3.0 procedure to create a Microsoft Excel OLE Automation object, the procedure returns an error message if Microsoft Excel is already running.

CAUSE
Alerts are still displayed when you use the CreateObject function to run Microsoft Excel as an OLE Automation server. In general, having these alerts displayed is not a problem when you use the CreateObject function with the Application object, because add-ins, files located in the XLSTART directory, and the default new workbook are not loaded.

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

"Q108888 XL: Add-Ins Don't Load When Using CreateObject" However, this behavior does cause a problem when you use the CreateObject function to create a Sheet object, and the OnSheetActivate property has been used for any sheet in any open workbook in the current session of Microsoft Excel. In this case, the macro that is assigned to run when a sheet is activated, also runs when the sheet object is created by the Visual Basic 3.0 procedure. If this macro displays a message box, or causes a dialog box to appear, the Visual Basic 3.0 procedure may return an error message, and the OLE Automation object, (the sheet in Microsoft Excel), becomes visible. Note that you can use the DisplayAlerts property to prevent alerts from being displayed while Microsoft Excel is being used as an OLE Automation server. However, because you cannot use the DisplayAlerts property until the OLE Automation object has been created, using DisplayAlerts does not work in the case where an alert appears as the result of the CreateObject function.

WORKAROUND
To avoid receiving an alert in Microsoft Excel when you use the CreateObject function to create an OLE Automation object, use the CreateObject function with the Application object, instead of with the Sheet object.

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
For additional information, please see the following article in the Microsoft Knowledge Base:

"Q111311 XL5: CreateObject Function Starts Invisible Instance of Excel"