A CreateObject parancs használatakor nem töltődnek be a bővítmények az Excel alkalmazásban

A cikk fordítása A cikk fordítása
Cikk azonosítója: 213489 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

A lap tartalma

A jelenség

Ha a Microsoft Excel alkalmazást OLE automatizálási objektumként éri el a CreateObject paranccsal, az XLStart mappában található bővítmények és fájlok, valamint az alapértelmezett új munkafüzet nem töltődik be.

Oka

A bővítmények és fájlok betöltésekor az Excel üzenetben jelzi a hívó alkalmazásnak (például Visual Basic), hogy nem áll készen a kérelem megválaszolására, ezért újból kell próbálkoznia. Előfordulhat, hogy a hívó alkalmazás nem képes kezelni a kérelmet, és nem tudja végrehajtani a többi parancsot.

Kerülő megoldás

A Microsoft csak szemléltetési célból ad közre programozási példákat, és azokra – beleértve a forgalomba hozhatóságot és az adott célra való megfelelőséget is – sem törvényi, sem más garanciát nem vállal. A cikk feltételezi, hogy az olvasó jártas a bemutatott programozási nyelvben, valamint az eljárások létrehozására és a velük kapcsolatos hibakeresésre szolgáló eszközök használatában. A Microsoft támogatási szakemberei segíthetnek az egyes eljárások működésének megértésében. E szakemberek ugyanakkor funkcióbővítési célból nem módosítják a példákat, és nem készítenek az egyéni igényeknek megfelelő eljárásokat.

Ha az Excel alkalmazás OLE automatizálási objektumként való futtatásakor szeretne egy bővítményfájlt betölteni, végezze el kézzel a betöltést. E metódusra példák az alábbiak.

A Microsoft Office Excel 2007 esetén

Sub LoadAddin()

   ' xl definiálása objektum típusú változóként.
   Dim xl As Object

   ' Aktiválja és az xl változóhoz rendeli a Microsoft Excel alkalmazást.
   Set XL = CreateObject("Excel.Application")

   ' Megnyitja a kívánt bővítményfájlt, a jelen példában az XLQUERY.XLAM fájlt.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' Ha regisztrálnia kell a függvényeket és parancsokat,
   ' amelyek egy erőforrásban (XLL) találhatók, használja a RegisterXLL metódust.
   ' Az alábbi példában az Analys32.xll minden függvénye
   ' regisztrálva van.
   ' XL.RegisterXLL "Analys32.xll"

   ' A bővítményfájlban található bármely automatikus makrót futtatja
   ' Az automatikus makrók nem futnak, ha egy fájlt az
   ' Open metódus használatával nyit meg.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

A Microsoft Office Excel 2003 és az Excel korábbi verziói esetén

Sub LoadAddin()

   ' xl definiálása objektum típusú változóként.
   Dim xl As Object

   ' Aktiválja és az xl változóhoz rendeli a Microsoft Excel alkalmazást.
   Set XL = CreateObject("Excel.Application")

   ' Megnyitja a kívánt bővítményfájlt, a jelen példában az XLQUERY.XLA fájlt.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' Ha regisztrálnia kell a függvényeket és parancsokat,
   ' amelyek egy erőforrásban (XLL) találhatók, használja a RegisterXLL metódust.
   ' Az alábbi példában az Analys32.xll minden függvénye
   ' regisztrálva van.
   ' XL.RegisterXLL "Analys32.xll"

   ' A bővítményfájlban található bármely automatikus makrót futtatja
   ' Az automatikus makrók nem futnak, ha egy fájlt az
   ' Open metódus használatával nyit meg.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

További információ

Mivel az Excel nem tölti be az XLStart mappában lévő bővítményeket és fájlokat abban az esetben, ha OLE automatizálási objektumként hívja meg, teljes mértékben felügyelheti a betöltési folyamatot. Ha be szeretne tölteni egy bővítményt, kézzel betöltheti azt.

Ez azt is jelenti, hogy a CreateObject paranccsal való meghívás esetén nem makróhiba vagy zárolt, illetve írásvédett fájlra vonatkozó értesítés akadályozza meg az Excel alkalmazást a betöltéstől. E működés másik előnye, hogy így kevesebb időt vesz igénybe az Excel betöltése, mint a bővítmények vagy fájlok betöltésekor.

Hivatkozások

A Visual Basic for Applications összetevővel kapcsolatos forrásokról a Microsoft Tudásbázis alábbi cikkében tájékozódhat:
226118 A Visual Basic for Applications programozási nyelv tanulását megkönnyítő források listája (Előfordulhat, hogy a hivatkozás részben vagy teljes egészében angol nyelvű tartalomra mutat.)

Tulajdonságok

Cikk azonosítója: 213489 - Utolsó ellenőrzés: 2011. szeptember 18. - Verziószám: 3.0
A cikkben található információ a következő(k)re vonatkozik:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Kulcsszavak: 
kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com