Laufzeitfehler 429 bei der Automatisierung von Office-Anwendungen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 828550 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Wenn Sie ein Small Business-Kunde sind, finden Sie auf der Website Support für kleine Unternehmen weitere Problembehandlungs- und Lernressourcen.
Eine Version dieses Artikels für Microsoft Office XP, Office 2000 und Office 97 finden Sie unter 244264.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Wenn Sie den Operator New oder die Funktion CreateObject in Microsoft Visual Basic verwenden, um eine Instanz einer Microsoft Office-Anwendung zu erstellen, erhalten Sie eventuell die folgende Fehlermeldung:
Laufzeitfehler '429': Objekterstellung durch ActiveX-Komponente nicht möglich
Dieser Fehler tritt auf, wenn Component Object Model (COM) das angeforderte Objekt Automatisierung nicht erstellen kann, und daher das Objekt Automatisierung nicht für Visual Basic zur Verfügung steht. Dieser Fehler tritt nicht auf allen Computern auf.

Dieser Artikel beschreibt, wie Sie häufige Probleme diagnostizieren und lösen, die diesen Fehler auslösen können.

Weitere Informationen

In Visual Basic gibt es mehrere Auslöser für Fehler 429. Der Fehler tritt auf, wenn eine der folgenden Bedingungen zutrifft:
  • Es gibt einen Fehler in der Anwendung.
  • Es gibt einen Fehler in der Systemkonfiguration.
  • Eine Komponente fehlt.
  • Eine Komponente ist beschädigt.
Isolieren Sie das Problem, um die Ursache für den Fehler zu finden. Wenn auf einem Clientcomputer Fehler 429 angezeigt wird, versuchen Sie anhand der folgenden Informationen den Fehler in Microsoft Office-Applikationen zu isolieren und zu beheben.

Hinweis Einige der folgenden Informationen treffen möglicherweise auch für Nicht-Office-COM-Server zu. Dieser Artikel geht aber davon aus, dass Sie Office-Anwendungen automatisieren möchten.

Überprüfen des Codes

Bevor Sie versuchen, den Fehler zu beheben, versuchen Sie, eine einzelne Zeile des Codes zu isolieren, der das Problem auslösen könnte.

Wenn Sie feststellen, dass eine einzelne Zeile des Codes das Problem auslösen könnte, führen Sie diese Schritte durch:
  • Vergewissern Sie sich, dass der Code explizite Objekterstellung verwendet.

    Probleme sind einfacher zu identifizieren, wenn Sie auf eine einzelne Aktion eingegrenzt sind. Suchen Sie beispielsweise nach der Verwendung von impliziter Objekterstellung wie in einem der folgenden Beispiele:

    Codebeispiel 1
    Application.Documents.Add 'NICHT VERWENDEN!!
    Codebeispiel 2
    Dim oWordApp As New Word.Application 'NICHT VERWENDEN!!
    '... anderer Code
    oWordApp.Documents.Add
    Beide Code-Beispiele verwenden implizite Objekterstellung. Microsoft Office Word 2003 startet nicht, bis die Variable mindestens einmal aufgerufen wird. Da die Variable eventuell in verschiedenen Teilen des Programms aufgerufen wird, kann sie eventuell schwer zu lokalisieren sein. Es kann Schwierigkeiten machen festzustellen, ob ein Problem ausgelöst wird, wenn das Objekt Applikation erstellt wird, oder das Objekt Dokument.

    Stattdessen können Sie wie folgt explizite Aufrufe erzeugen, die jedes Objekt einzeln erstellen.
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... anderer Code
    Set oDoc = oWordApp.Documents.Add
    Wenn Sie explizite Aufrufe erzeugen, um einzelne Objekte zu erstellen, ist das Problem einfacher zu isolieren. Dies macht es eventuell auch leichter, den Code zu lesen.
  • Verwenden Sie die Funktion CreateObject anstatt des Operators New, wenn Sie die Instanz einer Office-Anwendung erzeugen.



    Die Funktion CreateObject ordnet den Erstellungsprozess genau zu, den die meisten Microsoft Visual C++-Clients verwenden. Die Funktion CreateObject erlaubt ebenfalls Änderungen in der CLSID des Servers zwischen Versionen. Sie können die Funktion CreateObject mit früh gebundenen und spät gebundenen Objekten verwenden.
  • Überprüfen Sie, ob die Zeichenfolge "ProgID" korrekt ist, die an CreateObject weitergegeben wird, und ob die Zeichenfolge "ProgID" versionsunabhängig ist. Verwenden Sie beispielsweise die Zeichenfolge "Excel.Application" anstatt "Excel.Application.8". Das System, auf dem es nicht funktioniert, hat eventuell eine ältere oder neuere Version von Microsoft Office als die Version, die Sie in der Zeichenfolge "ProgID" festgelegt haben.
  • Verwenden Sie den Befehl Erl, um die Zeilennummer der Codezeile melden zu lassen, die nicht erfolgreich ist. Dies kann dabei helfen, Anwendungen zu debuggen, die in der IDE nicht ausgeführt werden können. Der folgende Code zeigt Ihnen an, welches Objekt Automatisierung nicht erstellt werden kann (Microsoft Word oder 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")
     	
     	' ... anderer Code
     	
     	err_handler:
     	  MsgBox "Fehler bei Codezeile " & Erl, vbCritical
    Verwenden Sie die Funktion MsgBox und die Zeilennummer, um den Fehler zu ermitteln.
  • Verwenden Sie späte Bindung wie folgt:
    Dim oWordApp As Object
    Objekte mit früher Bindung erfordern es, dass ihre benutzerdefinierten Schnittstellen über Prozessgrenzen hinweg gemarshallt werden. Wenn die benutzerdefinierte Schnittstelle nicht während CreateObject oder New gemarshallt werden kann, wird Fehler 429 ausgegeben. Ein spät gebundenes Objekt verwendet die systemdefinierte Schnittstelle IDispatch, bei der ein benutzerdefinierter Proxy nicht gemarshallt werden muss. Verwenden Sie ein spät gebundenes Objekt, um festzustellen, ob dieser Vorgang korrekt funktioniert.

    Wenn das Problem nur bei früh gebundenen Objekten auftritt, liegt das Problem in der Serveranwendung. Üblicherweise können Sie die Anwendung neu installieren, wie in Abschnitt "Überprüfen des Automatisierungsservers" dieses Artikels beschrieben, um das Problem zu korrigieren.

Überprüfen des Automatisierungsservers

Die häufigste Ursache von Fehlern in Verbindung mit CreateObject oder New ist ein Problem mit der Serveranwendung. Üblicherweise wird dieses Problem durch die Konfiguration oder das Setup der Anwendung ausgelöst. Verwenden Sie die folgenden Verfahren, um das Problem zu beheben:
  • Stellen Sie sicher, dass die Office-Anwendung, die Sie automatisieren möchten, auf dem lokalen Computer installiert ist. Vergewissern Sie sich, dass Sie die Anwendung ausführen können. Um dies zu tun, klicken Sie auf Start anschließend auf Ausführen, und versuchen Sie dann, die Anwendung auszuführen. Wenn Sie die Anwendung nicht manuell starten können, wird diese nicht automatisiert zu starten sein.
  • Führen Sie eine erneute Registrierung der Anwendung durch:
    1. Klicken Sie auf Start und anschließend auf Ausführen.
    2. Geben Sie in das Dialogfeld Ausführen den Pfad des Servers ein, hängen Sie dann /RegServer an das Ende der Zeile an.
    3. Klicken Sie auf OK.

      Die Anwendung wird im stillen Modus ausgeführt. Die Applikation wird erneut als ein COM-Server registriert.
    Wenn das Problem aufgrund eines fehlenden Registrierungsschlüssels auftritt, korrigieren diese Schritte normalerweise das Problem.
  • Untersuchen Sie den Schlüssel LocalServer32 unter CLSID für die Applikation, die Sie ausführen möchten. Stellen Sie sicher, dass der Schlüssel LocalServer32 auf den korrekten Speicherort der Applikation verweist. Stellen Sie sicher, dass der Pfadname Kurzformat hat (DOS 8.3). Sie müssen einen Server nicht registrieren, wenn Sie einen kurzen Pfadnamen verwenden. Lange Pfadnamen mit eingebetteten Leerzeichen können auf manchen Systemen zu Problemen führen.

    Um den Pfadschlüssel zu überprüfen, der für den Server gespeichert ist, starten Sie den Windows Registrierungs-Editor folgendermaßen:
    1. Klicken Sie auf Start und anschließend auf Ausführen.
    2. Geben Sie regedit ein, und klicken Sie anschließend auf OK.
    3. Verschieben Sie den Schlüssel "HKEY_CLASSES_ROOT\CLSID".

      Die CLSIDs für die registrierten Automatisierungsserver auf diesem System befinden sich unter diesem Schlüssel.
    4. Verwenden Sie die folgenden Werte für den CLSID-Schlüssel, um den Schlüssel zu finden, der die Office-Applikation repräsentiert, die Sie automatisieren möchten. Untersuchen Sie den Schlüssel "LocalServer32" des Schlüssels CLSID für den Pfad.
      Tabelle minimierenTabelle vergrößern
      Office ServerCLSID-Schlüssel
      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. Stellen Sie sicher, dass der Pfad dem tatsächlichen Speicherort der Datei entspricht.
    Hinweis Kurze Pfadnamen können richtig aussehen, auch wenn sie es nicht sind. Beispielsweise haben sowohl Office als auch Microsoft Internet Explorer (wenn sie an ihrem Standardspeicherort abgespeichert sind) einen kurzen Pfadnamen in etwa wie folgt: C:\PROGRA~1\MICROS~X\ (wobei X eine Zahl ist). Dies erscheint anfangs eventuell nicht als kurzer Pfadname.

    Gehen Sie so vor, um festzustellen, ob der Pfad korrekt ist:
    1. Klicken Sie auf Start und anschließend auf Ausführen.
    2. Kopieren Sie den Wert aus der Registrierung, und fügen Sie diesen in das Dialogfeld Ausführen ein.

      Hinweis Entfernen Sie die Befehlszeilenoption /automation, bevor Sie die Anwendung ausführen.
    3. Klicken Sie auf OK.
    4. Vergewissern Sie sich, dass die Anwendung korrekt ausgeführt wird.

      Wenn die Anwendung ausgeführt wird, nachdem Sie auf OK geklickt haben, ist der Server korrekt registriert. Wenn die Anwendung nicht ausgeführt wird, nachdem Sie auf OK geklickt haben, ersetzen Sie den Wert des Schlüssels LocalServer32 durch den korrekten Pfad. Verwenden Sie nach Möglichkeit einen kurzen Pfadnamen.
  • Überprüfen Sie, ob eventuell eine Beschädigung der Vorlage "Normal.dot" oder der Ressourcendatei "Excel.xlb" vorliegt. Wenn entweder die Vorlage "Normal.dot" in Word oder die Ressourcendatei "Excel.xlb" in Excel beschädigt sind, können Probleme auftreten, wenn Sie Microsoft Word oder Microsoft Excel automatisieren möchten. Um diese Dateien zu überprüfen, suchen Sie auf den lokalen Festplatten nach allen Instanzen von "Normal.dot" oder "Excel.xlb".

    Hinweis Auf Systemen, auf denen Microsoft Windows 2000 oder Microsoft Windows XP ausgeführt wird, können Sie auch mehrere Kopien dieser Dateien finden. Es gibt jeweils eine Kopie für jede dieser Dateien für jedes Benutzerprofil, das in dem System installiert ist.

    Benennen Sie die Dateien "Normal.dot" und "Excel.xlb" vorübergehend um, und führen Sie Ihren Automatisierungstest erneut durch. Word und Excel erstellen diese Dateien jeweils neu, wenn sie sie nicht finden können. Überprüfen Sie die Funktionsfähigkeit des Codes. Wenn der Code nach Erstellung einer neuen Datei "Normal.dot" ausgeführt werden kann, löschen Sie die Dateien, die Sie umbenannt haben. Diese Dateien sind beschädigt. Wenn der Code nicht ausgeführt werden kann, müssen Sie diese Dateien wieder nach ihren Originaldateinamen umbenennen, um benutzerdefinierte Einstellungen zu erhalten, die in diesen Dateien gespeichert sind.
  • Wenn auf Ihrem System Windows 2000 ausgeführt wird, führen Sie die Anwendung über das Administratorenkonto aus. Office-Server benötigen Lese-/Schreibzugriff auf die Registrierung und das Laufwerk. Es kann vorkommen, dass Office-Server nicht ordnungsgemäß geladen werden, wenn die Sicherheitseinstellungen den Lese-/Schreibzugriff verwehren.

Überprüfen des Systems

Auch die Systemkonfiguration kann zu Problemen mit der Out-of-Process-COM-Servererstellung führen. Zur Fehlerbehebung setzen Sie die folgenden Verfahren in dem System ein, auf dem der Fehler auftritt:
  • Stellen Sie fest, ob das Problem auf Out-of-Process-Servern auftritt. Wenn Sie eine Anwendung haben, die einen bestimmten COM-Server verwendet (wie beispielsweise Word), testen Sie einen anderen Out-of-Process-Server, um sicherzustellen, dass das Problem nicht in der COM-Schicht selbst liegt. Wenn Sie keinen Out-of-Process-COM-Server auf dem Computer erstellen können, installieren Sie die OLE-Systemdateien erneut, wie im Abschnitt "Office neu installieren" dieses Artikels erläutert. Oder installieren Sie das Betriebssystem erneut, um das Problem zu beheben.
  • Überprüfen Sie die Versionsnummern der OLE-Systemdateien, die die Automatisierung verwalten. Diese Dateien werden üblicherweise als Satz installiert. Diese Dateien müssen mit den Build-Nummern übereinstimmen. Ein nicht korrekt konfiguriertes Setupprogramm kann die Dateien irrtümlicherweise einzeln installieren. Daher stimmen die Dateien nicht überein. Um Probleme mit der Automatisierung zu vermeiden, überprüfen Sie die Dateien, um festzustellen, ob die Builds der Dateien übereinstimmen.

    Die Automatisierungsdateien liegen im Verzeichnis "Windows\System32" oder "Winnt\System32". Überprüfen Sie die folgenden Dateien:
    Tabelle minimierenTabelle vergrößern
    File nameVersionDate modified
    Asycfilt.dll3.50.5014September 04, 2002
    Oleaut32.dll3.50.5016September 04, 2002
    Olepro32.dll5.0.5014September 04, 2002
    Stdole2.tlb3.0.5014September 04, 2002
    Um die Dateiversion zu überprüfen, klicken Sie mit der rechten Maustaste auf die Datei im Windows Explorer, und klicken Sie anschließend auf Eigenschaften. Achten Sie auf die letzten vier Ziffern der Dateiversion (die Build-Nummer) und das Datum, an dem die Datei zuletzt geändert wurde. Stellen Sie sicher, dass diese Werte für alle Automatisierungsdateien die gleichen sind.

    Hinweis Die früheren Versionsnummern und die früheren Daten werden von einem Computer übernommen, der Windows Server 2003 mit Office 2003 verwendet. Diese Zahlen und Daten werden nur als Beispiele verwendet. Ihre Daten können abweichen.

    Wenn die Dateien nicht mit der Build-Nummer oder den geänderten Daten übereinstimmen, laden Sie ein selbstextrahierendes Programm herunter, dass Ihre Automatisierungsdateien aktualisiert.

    Weitere Informationen dazu, wie Sie Zugriff auf Laufzeitdaten erhalten, finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    235420 VBRun60sp4.exe installiert Visual Basic 6.0 SP4-Laufzeitdateien
  • Verwenden Sie das Systemkonfigurationsprogramm (Msconfig.exe), um die Dienste und den Systemstart von Anwendungen von Fremdanbietern zu überprüfen, die das Ausführen von Code in der Office-Anwendung beschränken könnten. Weitere Informationen zu Msconfig.exe finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    310560 Problembehandlung bei Konfigurationsfehlern in Windows XP mit dem Systemkonfigurationsprogramm
    Beispielsweise könnten die automatisierten Outlook-Anwendungen scheitern, wenn Sie ein Antivirusprogramm mit "Script Blocker"-Funktionen ausführen.

    Hinweis Deaktivieren Sie das Antivirusprogramm nur zeitweise auf einem Testsystem, das nicht mit dem Netzwerk verbunden ist.

    Alternativ können Sie auch die folgenden Schritte durchführen, um Add-Ins von Fremdanbietern zu deaktivieren:
    1. Klicken Sie im Menü Extras auf Optionen.
    2. Klicken Sie in der Registerkarte Weitere auf Erweiterte Optionen.
    3. Klicken Sie im Dialogfeld Erweiterte Optionen auf Add-In-Manager.
    4. Deaktivieren Sie die Kontrollkästchen für alle Add-Ins von Fremdanbietern.
    5. Starten Sie Outlook neu.
    Wenn diese Methode das Problem behebt, nehmen Sie Kontakt mit dem Verkäufer Ihres Fremdanbieter-Antivirusprogramms auf, um weitere Informationen zu einer Aktualisierung des Antivirusprogramms zu erhalten.

Neuinstallieren von Office

Wenn keines der vorangegangenen Verfahren das Problem löst, entfernen Sie Office, und installieren Sie es erneut. Microsoft empfiehlt, dass Sie die existierende Version zuerst entfernen und dann Office mithilfe der Originalinstallationsmedien erneut installieren.

Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
219423 OFF2000: Wie Sie Microsoft Office CD1 vollständig entfernen können
158658 OFF97: Wie man Microsoft Office 97 vollständig entfernt

Informationsquellen

Weitere Informationen zur Problembehebung bei der Fehlermeldung 429 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
240377 Überprüfen der ordnungsgemäßen Installation von Jet 3.5 (Teil I)
Weitere Informationen zur Automatisierung von Office und Code-Beispiele finden Sie auf folgender Website von Microsoft:
http://support.microsoft.com/ofd
Hinweis Dies ist ein Artikel, der im Schnellverfahren direkt von der Microsoft-Supportorganisation erstellt wurde. Die hierin enthaltenen Informationen werden als Reaktion auf neue Probleme wie besehen bereitgestellt. Da dieser Artikel im Schnellverfahren erstellt wurde, kann er Tippfehler enthalten und zu einem späteren Zeitpunkt ohne vorherige Ankündigung überarbeitet werden. Weitere zu berücksichtigende Informationen finden Sie in den Nutzungsbedingungen.

Eigenschaften

Artikel-ID: 828550 - Geändert am: Dienstag, 2. Juli 2013 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Excel 2007
  • Microsoft Office SharePoint Designer 2007
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2007
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
Keywords: 
kbexpertisebeginner kbtshoot kbprogramming kberrmsg kbautomation kbinfo KB828550
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns