Laufzeitfehler 429 bei der Automatisierung von Office-Anwendungen

Artikel-ID: 828550 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
828550 You receive run-time error 429 when you automate Office applications
In Artikel 244264 wird dieses Thema für Microsoft Office XP, Office 2000 und Microsoft Office 97 behandelt.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
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 'DON'T USE THIS!!
    Codebeispiel 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other 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")
    '... some other 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")
     	
     	' ... some other code
     	
     	err_handler:
     	  MsgBox "The code failed at line " & 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, erhalten Sie Fehler 429. 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

Der häufigste Grund für einen Fehler bei CreateObject oder bei New ist ein Problem mit der Serverapplikation. Ü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. Click 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: In 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

Die Systemkonfiguration kann auch 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
    DateinameVersionGeändert am
    Asycfilt.dll3.50.501404. September 2002
    Oleaut32.dll3.50.501604. September 2002
    Olepro32.dll5.0.501404. September 2002
    Stdole2.tlb3.0.501404. September 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 DATEI: VBRun60sp4.exe installiert Visual Basic 6 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 mit dem Dienstprogramm "Msconfig" in Windows XP
    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.

Office neu installieren

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

Eigenschaften

Artikel-ID: 828550 - Geändert am: Mittwoch, 30. Mai 2007 - Version: 5.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Office SharePoint Designer 2007
  • Microsoft Office FrontPage 2003
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • 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