Při použití příkazu CreateObject v aplikaci Excel se nenačtou doplňky

Příznaky

Pokud prostřednictvím příkazu CreateObject přistoupíte k aplikaci Microsoft Excel jako k objektu automatizace OLE, nenačtou se doplňky, soubory umístěné v adresáři XLStart a výchozí nový sešit.

Příčina

Pokusíte-li se načíst tyto doplňky a soubory, aplikace Excel odešle volající aplikaci, jako je například Visual Basic, zprávu, že není připravena reagovat na tento požadavek a že je třeba akci zopakovat. Může se stát, že volající aplikace není schopna tento požadavek zpracovat a pokračovat ve zpracování dalších příkazů.

Jak potíže obejít

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určité procedury, nemohou však následující příklady rozšířit o další funkce nebo vytvářet procedury podle konkrétních požadavků uživatele.

Chcete-li při spuštění aplikace Excel jako objektu automatizace OLE načíst soubor doplňku, musíte jej načíst ručně. Zde jsou uvedeny příklady použití této metody.

Aplikace 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

Microsoft Office Excel 2003 a starší verze aplikace 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

Další informace

Vzhledem k tomu, že aplikace Excel při spuštění jako objekt automatizace OLE nenačte doplňky a soubory v adresáři XLStart, máte nad procesem načítání plnou kontrolu. Chcete-li, aby byl doplněk načten, můžete jej načíst ručně.

Toto chování rovněž znamená, že žádné chyby maker, upozornění na uzamčené soubory či soubory určené jen ke čtení nebrání aplikaci Excel v načítání, je-li volána příkazem CreateObject. Další výhodou je rovněž skutečnost, že načtení aplikace Excel trvá kratší dobu, než když jsou rovněž načítány doplňky nebo soubory.

Odkazy

Další informace o možnostech získání nápovědy k jazyku Visual Basic for Applications naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

226118 Seznam dostupných zdrojů pro výuku programování v jazyce Visual Basic for Applications
Vlastnosti

ID článku: 213489 - Poslední kontrola: 10. 1. 2017 - Revize: 1

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Excel 97 Standard Edition

Váš názor