United States*
Quick Links|Home|Worldwide
Microsoft*
Search Microsoft.com for:
Help and Support 
|Select a Product|Advanced Search

Add-ins do not load when using the CreateObject command in Excel

Article ID:213489
Last Review:January 17, 2007
Revision:5.1
This article was previously published under Q213489

SYMPTOMS

When you access Microsoft Excel as an OLE Automation object using the CreateObject command, add-ins, files that are located in the XLStart directory, and the default new workbook are not loaded.

Back to the top

CAUSE

When you attempt to load add-ins and files, Excel sends a message to the calling application, such as Visual Basic, that it is not ready to respond to the request and to try again later. The calling application may not be able to handle this request and continue with the rest of the commands.

Back to the top

WORKAROUND

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. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

To load an add-in file when you run Excel as an OLE Automation object, load the add-in manually. Examples of this method are as follows.

Back to the top

Microsoft Office Excel 2007

Sub LoadAddin()

   ' Dimension variable xl as object type.
   Dim xl As Object

   ' Activate Microsoft Excel and assign to variable xl.
   Set XL = CreateObject("Excel.Application")

   ' Open the add-in file you want, in this example, XLQUERY.XLAM.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' If you need to register the functions and commands
   ' contained in a resource (XLL), use the RegisterXLL method.
   ' In the example below, all functions of Analys32.xll are
   ' registered.
   ' XL.RegisterXLL "Analys32.xll"

   ' Run any auto macros contained in the add-in file
   ' Auto macros don't run when you open a file
   ' using the Open method.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Back to the top

Microsoft Office Excel 2003 and earlier versions of Excel

Sub LoadAddin()

   ' Dimension variable xl as object type.
   Dim xl As Object

   ' Activate Microsoft Excel and assign to variable xl.
   Set XL = CreateObject("Excel.Application")

   ' Open the add-in file you want, in this example, XLQUERY.XLA.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' If you need to register the functions and commands
   ' contained in a resource (XLL), use the RegisterXLL method.
   ' In the example below, all functions of Analys32.xll are
   ' registered.
   ' XL.RegisterXLL "Analys32.xll"

   ' Run any auto macros contained in the add-in file
   ' Auto macros don't run when you open a file
   ' using the Open method.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Back to the top

MORE INFORMATION

Because Excel does not load add-ins or files in the XLStart directory when you call it as an OLE Automation object, you have complete control of the loading process. If you want an add-in to be loaded, you can load it manually.

This behavior also means that no macro errors, locked file alerts, or read-only file alerts keep Excel from loading when it is being called by the CreateObject command. Another benefit of this behavior is that it takes less time to load Excel than it does when add-ins or files are loaded.

Back to the top

REFERENCES

For more information about how to get help with Visual Basic for Applications, click the following article number to view the article in the Microsoft Knowledge Base:
226118 (http://support.microsoft.com/kb/226118/) List of resources that are available to help you learn Visual Basic for Applications programming

Back to the top


APPLIES TO
Microsoft Office Excel 2007
Microsoft Office Excel 2003
Microsoft Excel 2002 Standard Edition
Microsoft Excel 2000 Standard Edition
Microsoft Excel 97 Standard Edition

Back to the top

Keywords: 
kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489

Back to the top

 
Provide feedback on this article
Did this article help you solve your problem?
Yes
No
Partially
I do not know yet
Strongly AgreeStrongly Disagree
987654321
The article is easy to understand
The article is accurate
Additional Comments:
To protect your privacy, do not include contact information in your feedback.

Search Support (KB)

 
Word 2003
Switch to Advanced Search

Article Translations

 

Check for Updates

Technical Communities

Page Tools


© 2007 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement