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