Obdržíte chybu běhu 429 při automatizaci aplikací Office

Microsoft Office XP, Office 2000 a Office 97 verzi tohoto článku v tématu 244264 .

Souhrn

Když použijete operátor New nebo funkci CreateObject v jazyce Microsoft Visual Basic k vytvoření instance aplikace sady Microsoft Office, můžete obdržet následující chybovou zprávu:
Chyba spuštění '429': součást ActiveX nemůže vytvořit objekt
K této chybě dochází, když objekt modelu COM (Component) nemůže vytvořit požadovaný objekt Automation a objekt Automation tudíž není k dispozici pro jazyk Visual Basic. K této chybě nedochází ve všech počítačích.

Tento článek popisuje, jak diagnostikovat a řešit běžné problémy, které mohou způsobit tuto chybu.

Další informace

V jazyce Visual Basic existuje několik příčin chyby 429. K této chybě dojde, je-li splněna některá z následujících podmínek:
  • Je chyba v aplikaci.
  • V konfiguraci systému je chyba.
  • Je chybějící součásti.
  • Je poškozené součásti.
Chcete-li zjistit příčinu chyby, izolujte problém. Pokud dojde k chybě 429 v klientském počítači, použijte následující informace k izolaci a řešení chyb v aplikacích Microsoft Office.

Poznámka: Některé z uvedených informací může také použít servery COM sady Office. Tento článek předpokládá, že chcete automatizovat aplikace systému Office.

Zkontrolujte kód

Před odstraňování došlo k chybě, pokuste se izolovat řádek kódu, který může být příčinou problému.

Pokud zjistíte, že jediný řádek kódu může být příčinou problému, proveďte následující postupy:
  • Ujistěte se, zda kód používá explicitní vytváření objektů.


    Problémy se snáze identifikují, pokud zúžit jednu akci. Vyhledejte například použití implicitní vytvoření objektu jako jeden z následujících kroků.

    Ukázka kódu 1
    Application.Documents.Add 'DON'T USE THIS!!
    Ukázkový kód 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!'... some other code
    oWordApp.Documents.Add
    Oba tyto příklady kódu používají implicitní vytváření objektů. Microsoft Office Word 2003 nelze spustit, dokud proměnná se nazývá alespoň jednou. Protože proměnná může být volána v různých částech programu, může být obtížné najít problém. Může být složité ověřit, zda je problém způsoben při vytvoření objektu Application nebo objektu dokumentu je vytvořena.

    Místo toho můžete provést explicitní volání vytvořit každý objekt samostatně, tj.
    Dim oWordApp As Word.ApplicationDim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    Pokud provedete explicitní volání vytvořit každý objekt samostatně, je snazší izolovat problém. To může také zjednodušit kód ke čtení.

  • Použijte funkci CreateObject namísto operátoru New při vytváření instance aplikace systému Office.

    Funkce CreateObject podrobně mapuje proces tvorby, používaný většinou klientů jazyka Microsoft Visual C++. Funkce CreateObject také umožňuje změny v identifikátoru třídy CLSID serveru mezi verzemi. S časnou vazbou a pozdní vazbou objekty, můžete použít funkce CreateObject.
  • Ověřte, zda řetězce ProgID, který je předán
    CreateObject je správný a potom ověřte, zda řetězce ProgID, nezávislé na verzi. Například použijte řetězec "Excel.Application" místo pomocí řetězce "Excel.Application.8". Systém, který může být starší verze sady Microsoft Office nebo novější verzi sady Microsoft Office, než je verze, kterou jste zadali v řetězce ProgID.
  • Použijte příkaz Erl nahlásit číslo řádku na řádek kódu, který není úspěšný. To může pomoci při ladění aplikací, které nemohou běžet v rozhraní IDE. Následující kód informuje o tom kterém
    Objekt Automation nelze vytvořit (Microsoft Word nebo Microsoft Office Excel 2003):
    Dim oWord As Word.Application Dim oExcel As Excel.Application

    On Error Goto err_handler

    1: Set oWord = CreateObject("Word.Application")
    2: Set oExcel = CreateObject("Excel.Application")

    ' ... some other code

    err_handler:
    MsgBox "The code failed at line " & Erl, vbCritical
    K vyhledání chyby použijte funkci MsgBox a číslo řádku.
  • Použijte pozdní vazba takto:
    Dim oWordApp As Object
    Objekty s časnou vazbou vyžadují své vlastní rozhraní zařazována přes hranice procesu. Pokud nelze zařadit vlastní rozhraní během
    Funkce CreateObject nebo Nový, dojde k chybě 429. Objekt pozdní vazbou používá systémem definované rozhraní IDispatch nevyžaduje vlastní proxy zařazována. Pomocí objektu pozdní vazbou ověřte, zda je tento postup funguje správně.

    Pokud k potížím dochází pouze v případě, že je objekt časnou vazbou, problém je v serverové aplikaci. Obvykle můžete přeinstalovat aplikace, jak je popsáno v části "Zkontrolujte automatizační Server" tohoto článku vyřešit.

Zkontrolujte automatizační server

Nejběžnější důvod chybu pomocí Funkce CreateObject nebo New je problém s aplikací serveru. Konfigurace aplikace nebo instalace aplikace obvykle způsobí potíže. Chcete-li vyřešit, použijte následující postupy:
  • Ověřte, že chcete automatizovat aplikace systému Office nainstalované v místním počítači. Ujistěte se, že můžete spustit aplikaci. Chcete-li to provést, klepněte na tlačítko Start, klepněte na tlačítko
    Spuštěnía potom zkuste spustit aplikaci. Pokud aplikaci nelze spustit ručně, nebude fungovat prostřednictvím automatizace.
  • Znovu zaregistrujte aplikaci následujícím způsobem:
    1. Klepněte na tlačítko Starta potom klepněte na tlačítko
      Spustit.
    2. V dialogovém okně Spustit zadejte cestu k serveru a potom připojit na konec řádku/regserver .
    3. Klepněte na tlačítko OK

      Aplikace bude spuštěna bez zásahu uživatele. Aplikace je přeregistrována jako COM server.
    Pokud k problému dochází, protože chybí klíč registru, tyto kroky obvykle problém.
  • Zkontrolujte klíč LocalServer32 v identifikátoru třídy CLSID pro aplikaci, kterou chcete automatizovat. Ujistěte se, že klíč LocalServer32 odkazuje na správné umístění aplikace. Ujistěte se, zda je název cesty ve formátu krátké cesty (DOS 8.3). Nemáte k registraci serveru pomocí krátký název cesty. Dlouhý název cesty s vloženými mezerami však může způsobit problémy u některých systémů.

    Chcete-li zkontrolovat klíč cesty, která je uložena na serveru, spusťte Editor registru systému Windows takto:
    1. Klepněte na tlačítko Starta potom klepněte na tlačítko
      Spustit.
    2. Zadejte příkaz regedita klepněte na tlačítko
      OK.
    3. Přejděte na klíč HKEY_CLASSES_ROOT\CLSID.

      Identifikátory CLSID pro registrované automatizační servery v systému jsou pod tímto klíčem.
    4. Pomocí následujících hodnot klíče CLSID vyhledejte klíč, který představuje aplikaci systému Office, kterou chcete automatizovat. Zkontrolujte klíč LocalServer32 klíč CLSID cesta.
      Office ServerKlíč CLSID
      Access.Application{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
      Excel.Application{00024500-0000-0000-C000-000000000046}
      FrontPage.Application
      {04DF1015-7007-11D1-83BC-006097ABE675}
      Outlook.Application{0006F03A-0000-0000-C000-000000000046}
      PowerPoint.Application{91493441-5A91-11CF-8700-00AA0060263B}
      Word.Application{000209FF-0000-0000-C000-000000000046}
    5. Ujistěte se, že cesta odpovídá skutečnému umístění souboru.
    Poznámka: Krátké názvy cesty se mohou zdát správné když nejsou správné. Například Office a aplikaci Microsoft Internet Explorer (pokud jsou nainstalovány do výchozího umístění) mají krátkou cestu, která se podobá C:\PROGRA~1\MICROS~X\ (kde
    X je číslo). Tento název možná nezdá být krátký název cesty.

    Chcete-li zjistit, zda je cesta správná, postupujte takto:
    1. Klepněte na tlačítko Starta potom klepněte na tlačítko
      Spustit.
    2. Zkopírujte hodnotu z registru a vložte hodnotu v dialogovém okně Spustit .

      Poznámka: Před spuštěním aplikace, odeberte přepínač/Automation .
    3. Klepněte na tlačítko OK
    4. Ověřte, zda se aplikace spustí správně.

      Pokud se aplikace spustí po klepnutí na tlačítko OK, server je správně zaregistrována. Pokud se aplikace nespustí po klepnutí na tlačítko
      OK, nahraďte hodnotu v klíči LocalServer32 správnou cestou. Pokud je to možné, použijte krátký název cesty.
  • Test poškození šablony Normal.dot nebo soubor prostředku Excel.xlb. Problémy mohou nastat při automatizaci aplikace Microsoft Word nebo Microsoft Excel v případě poškození buď šablony Normal.dot v aplikaci Word nebo soubor prostředku Excel.xlb v aplikaci Excel. Chcete-li otestovat tyto soubory, Hledat místní pevné disky pro všechny instance šablony Normal.dot nebo Excel.xlb.

    Poznámka: V počítačích se systémem Microsoft Windows 2000 nebo v počítačích se systémem Microsoft Windows XP můžete najít více kopií těchto souborů. Existuje jedna kopie každého z těchto souborů pro každý profil uživatele, který je nainstalován v systému.

    Dočasně přejmenujte soubory Normal.dot a Excel.xlb a znovu spusťte test automatizace. Word a Excel i vytvoření těchto souborů, pokud nebudou moci najít. Ověřte, zda kód funguje. Jestliže kód funguje, když je vytvořen nový soubor Normal.dot, odstraňte soubory, které jste přejmenovali. Tyto soubory jsou poškozeny. Pokud kód nefunguje, je třeba přejmenovat tyto soubory zpět na původní název, chcete-li uložit vlastní nastavení uložené v těchto souborech.
  • Pokud máte v počítači systém Windows 2000, spusťte aplikaci pod účtem správce. Servery Office vyžadují přístup pro čtení i zápis do registru a na disk. Servery Office nemusí správně načíst, pokud aktuální nastavení zabezpečení Odepřít přístup pro čtení i zápis.

Zkontrolujte systém

Konfigurace systému může také způsobit problémy s vytvoření serverů COM mimo proces. K řešení použijte následující postupy v systému, kde dochází k chybě:
  • Zjistěte, zda k problému dochází na libovolný server out-of-process. Pokud máte aplikaci, která používá určitý server COM (například Word), testování a ujistěte se, že problém není s samotné vrstvy COM. jiný server out-of-process. Pokud serveru out-of-process COM nelze vytvořit v počítači, znovu nainstalovat soubory OLE systému způsobem popsaným v části "Přeinstalovat Microsoft Office" tohoto článku nebo přeinstalovat operační systém, chcete-li vyřešit tento problém.
  • Zkontrolujte čísla verzí u systémových souborů OLE, které řídí automatizaci. Tyto soubory se obvykle instalují jako sada. Tyto soubory se musí shodovat čísla sestavení. Nesprávně nakonfigurovaný instalační nástroj může omylem soubory nainstalovat samostatně. Tím dojde k neshodě souborů. Aby se předešlo problémům při automatizaci, zkontrolujte soubory a ujistěte se, že sestavení těchto souborů se shodují.

    Soubory automatizace jsou umístěny v adresáři Windows\System32 nebo v adresáři Winnt\System32. Zkontrolujte následující soubory.
    Název souboruVerzeDatum změny
    Asycfilt.dll3.50.501404. září 2002
    Oleaut32.dll3.50.501604. září 2002
    Olepro32.dll5.0.501404. září 2002
    Stdole2.tlb3.0.501404. září 2002
    Chcete-li zkontrolovat verzi souboru, klepněte pravým tlačítkem myši na soubor v programu Průzkumník Windows a potom klepněte na příkaz Vlastnosti. Všimněte si poslední čtyři číslice verze souboru (číslo sestavení) a datum poslední změny souboru. Ujistěte se, zda jsou tyto hodnoty u všech souborů automatizace stejné.

    Poznámka: Výše uvedená čísla verzí a data jsou načtena z počítače, který používá počítač Windows Server 2003 s nainstalovanou sadou Office 2003. Tato čísla a kalendářní data jsou použita jen jako příklad. Vaše hodnoty mohou být různé.

    Pokud čísla sestavení nebo data změny souborů neshodují, stáhněte samorozbalovací nástroj, který aktualizuje soubory automatizace.

    Další informace o získání přístupu k souborům run-time získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

    235420 Program Vbrun60sp4.exe nainstaluje soubory run-time jazyka Visual Basic 6.0 SP4

  • Pomocí nástroje pro konfiguraci systému (Msconfig.exe) k prozkoumání služby a po spuštění pro aplikace jiných výrobců, které by mohly omezovat spuštění kódu v aplikaci systému Office. Další informace o Msconfig.exe klepněte na následující číslo článku databáze Microsoft Knowledge Base:

    310560 řešení potíží s chybami konfigurace pomocí nástroje Konfigurace systému v systému Windows XP

    Například aplikace Outlook Automation mohou selhat, pokud používáte antivirový program, který má funkce "blokování skriptů".

    Poznámka: Zakažte pouze dočasně v testovacím systému, který není připojen k síti antivirový program.

    Další možností postupujte takto v aplikaci Outlook zakažte doplňky jiných výrobců:
    1. V nabídce Nástroje klepněte na příkaz Možnosti.
    2. Na kartě jiné klepněte na tlačítko Upřesnit možnosti.
    3. V dialogovém okně Upřesnit možnosti klepněte na tlačítko Správce doplňků.
    4. Klepnutím zrušte zaškrtnutí políček u všech doplňků jiných výrobců.
    5. Restartujte aplikaci Outlook.
    Pokud tato metoda řeší problém, obraťte se na dodavatele výrobců antivirového softwaru Další informace o aktualizaci antivirového programu.

Znovu nainstalujte sadu Office

Pokud žádný z předchozích kroků k vyřešení problému, Office odebrat a přeinstalovat systém Office. Společnost Microsoft doporučuje nejprve odebrat stávající verzi a potom znovu nainstalujte sadu Office pomocí původního instalačního disku.

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

219423 jak odebrat disk CD-ROM 1 sady Office 2000

158658 jak úplně odebrat sadu Microsoft Office 97

Odkazy

Další informace o řešení potíží '429' chybová zpráva klepněte na následující číslo článku databáze Microsoft Knowledge Base:

240377 jak zajištění Jet 3.5 je správně nainstalován (část I)

Další informace o automatizaci systému Office a ukázky kódu naleznete na následujícím webu společnosti Microsoft:
Vlastnosti

ID článku: 828550 - Poslední kontrola: 16. 1. 2017 - Revize: 2

Váš názor