Zusammenfassung

Wenn Sie in Microsoft Visual Basic zum Erstellen einer Instanz einer Microsoft Office-Anwendung den New -Operator oder die Funktion CreateObject verwenden, erhalten Sie folgende Fehlermeldung:

Laufzeitfehler '429': ActiveX-Komponente konnte Objekt nicht erstellen

Dieser Fehler tritt auf, wenn Component Object Model (COM) das angeforderte Automatisierungsobjekt kann nicht erstellt werden und das Automatisierungsobjekt daher Visual Basic nicht verfügbar ist. Dieser Fehler tritt nicht auf allen Computern. Dieser Artikel beschreibt die diagnose und Behebung von Problemen, die diesen Fehler verursachen.

Weitere Informationen

In Visual Basic gibt es mehrere Auslöser für Fehler 429. Der Fehler tritt auf, wenn der folgenden Situationen zutrifft:

  • Es ist ein Fehler in der Anwendung.

  • Es ist ein Fehler in der Systemkonfiguration.

  • Es ist eine fehlende Komponente.

  • Gibt es eine Komponente ist beschädigt.

Um die Ursache des Fehlers zu finden, einzugrenzen Sie das Problem. Fehlermeldung "429" Fehlermeldung auf einem Clientcomputer verwenden Sie die folgende Informationen zum Isolieren und beheben den Fehler in Microsoft Office-Applikationen. Hinweis Die folgenden Informationen gelten auch für nicht - Office-COM-Server. Jedoch wird vorausgesetzt, dass Sie Office-Anwendung automatisieren möchten.

Überprüfen Sie den code

Vor der Problembehandlung versuchen Sie, eine einzelne Codezeile identifizieren, die das Problem verursacht. Wenn Sie feststellen, dass eine einzige Codezeile das Problem verursacht, führen Sie diese Verfahren:

  • Stellen Sie sicher, dass der Code explizite Erstellung verwendet. Probleme sind einfacher zu identifizieren, wenn sie auf eine einzelne Aktion eingegrenzt werden. Suchen Sie z. B. implizite Erstellung von Objekten, die die folgenden verwendet wird. 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 diese Codebeispiele verwenden Sie implizite Erstellen eines Objekts. Microsoft Office Word 2003 startet nicht, bis die Variable mindestens einmal aufgerufen wird. Da die Variable in verschiedenen Teilen des Programms aufgerufen werden kann, möglicherweise das Problem schwer zu lokalisieren. Es ist möglicherweise schwierig zu überprüfen, ob das Problem verursacht wird, wenn das Anwendungsobjekt erstellt oder das Document -Objekt erstellt wird. Stattdessen können Sie explizite jedes Objekt einzeln erstellen wie folgt aufrufen.

    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 jedes Objekt einzeln erstellen aufrufen, ist das Problem einfacher zu isolieren. Dies kann auch Code leichter lesbar machen.

  • Verwenden Sie die CreateObject -Funktion anstelle des New -Operators beim Erstellen einer Instanz einer Office-Anwendung. Die Funktion CreateObject ordnet eng des Erstellungsprozesses, mit denen meisten Microsoft Visual C++-Clients. CreateObjectFunktion ermöglicht ändert sich in die CLSID des Servers zwischen Versionen. Verwenden Sie die CreateObjectFunktion mit früh gebundenen Objekten und spät gebundenen Objekten.

  • Überprüfen Sie, ob die Zeichenfolge "ProgID", die an CreateObject ist korrekt, und stellen Sie sicher, dass die Zeichenfolge "ProgID" versionsunabhängig ist. Z. B. die Zeichenfolge "Excel.Application" anstatt "Excel.Application.8"-Zeichenfolge. Das System schlägt fehl möglicherweise eine ältere Version von Microsoft Office oder eine neuere Version von Microsoft Office-Version, die in die Zeichenfolge "ProgID" angegeben.

  • Befehl Erl die Zeilennummer der Codezeile melden, die nicht erfolgreich ist. Dadurch können Sie die Anwendung debuggen, die in der IDE ausgeführt werden kann. Der folgende Code enthält die Automatisierungsobjekt 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 MsgBox -Funktion und die Zeilennummer den Fehler verfolgen.

  • Verwenden Sie späte Bindung wie folgt:

    Dim oWordApp As Object

    Früh gebundenen Objekten müssen deren benutzerdefinierte Schnittstellen über Prozessgrenzen hinweg gemarshallt werden. Wenn die benutzerdefinierte Schnittstelle während CreateObject oder neugemarshallt werden kann, erhalten Sie die Fehlermeldung "429". Ein spät gebundenes Objekt verwendet die systemdefinierte Schnittstelle IDispatch, der keinen benutzerdefinierten Proxy gemarshallt werden. Verwenden Sie ein spät gebundenes Objekt um zu überprüfen, ob dieser Vorgang korrekt funktioniert. Das Problem tritt nur auf, wenn das Objekt früh gebunden ist, ist das Problem in der Serveranwendung. Normalerweise können Sie die Anwendung neu installieren, wie im Abschnitt "Überprüfen des Automatisierungsservers" dieses Artikels zur Behebung des Problems beschrieben.

Überprüfen des Automatisierungsservers

Die häufigste Ursache für einen Fehler bei Verwendung von CreateObject oder New ist ein Problem, das die Server-Anwendung. In der Regel verursacht die Konfiguration der Anwendung oder das Setup der Anwendung das Problem. Verwenden Sie zur Problembehandlung folgende Methoden:

  • Stellen Sie sicher, dass die zu automatisierende Office-Anwendung auf dem lokalen Computer installiert ist. Stellen Sie sicher, dass die Anwendung ausgeführt werden kann. Dazu klicken Sie auf Start, klicken Sie auf Ausführenund dann versuchen, die Anwendung auszuführen. Wenn Sie die Anwendung manuell ausführen können, funktioniert die Anwendung nicht über die Automatisierung.

  • Registrieren Sie die Anwendung wie folgt:

    1. Klicken Sie auf Startund dann auf Ausführen.

    2. Geben Sie im Dialogfeld den Pfad des Servers ein, und fügen Sie/regserver am Ende der Zeile.

    3. Klicken Sie auf OK. Die Anwendung wird im Hintergrund ausgeführt. Die Anwendung wird erneut als ein COM-Server registriert.

    Wenn das Problem auftritt, weil ein Registrierungsschlüssel fehlt, korrigieren diese Schritte normalerweise das Problem.

  • Untersuchen Sie den Schlüssel LocalServer32 unter CLSID für die Anwendung, die Sie automatisieren möchten. Stellen Sie sicher, dass der Schlüssel LocalServer32 auf den korrekten Speicherort für die Anwendung zeigt. Stellen Sie sicher, dass der Pfadname einen kurzen Pfadnamen (DOS 8.3) Format. Sie haben keinen Server mit einem kurzen Pfadnamen registriert. Lange Pfadnamen, die Leerzeichen enthalten können jedoch Probleme auf einigen Systemen verursachen. Beginnen Sie den Windows-Registrierungseditor Untersuchen des Servers gespeichert ist Pfad-Schlüssel wie folgt:

    1. Klicken Sie auf Startund dann auf Ausführen.

    2. Geben Sie regedit ein, und klicken Sie dann auf OK.

    3. Wechseln Sie zum Schlüssel HKEY_CLASSES_ROOT\CLSID. Die CLSIDs für die registrierten Automatisierungsserver auf dem System sind unter diesem Schlüssel.

    4. Verwenden Sie die folgenden Werte für den CLSID-Schlüssel nach dem Schlüssel, der die Office-Anwendung darstellt, die Sie automatisieren möchten. Untersuchen Sie den Schlüssel "LocalServer32" des Schlüssels CLSID für den Pfad.

      Office server

      CLSID-Schlüssel

      Access.Application

      {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}

      Excel.Application

      {00024500-0000-0000-C000-000000000046}

      Outlook.Application

      {0006F03A-0000-0000-C000-000000000046}

      PowerPoint.Application

      {91493441-5A91-11CF-8700-00AA0060263B}

      Word.Application

      {000209FF-0000-0000-C000-000000000046}

    5. Überprüfen Sie den Pfad zu den tatsächlichen Speicherort der Datei entspricht.

    Hinweis Kurze Pfadnamen können korrekt erscheinen, wenn sie nicht korrekt sind. Angenommen, Office und Microsoft Internet Explorer (Wenn sie an ihrem Standardspeicherort installiert sind) einen kurzen Pfadnamen ähnelt C:\PROGRA~1\MICROS~Xhaben \ (wo X ist die Zahl). Dieser Name kann nicht zunächst ein kurzer Pfadname. Gehen folgendermaßen Sie vor um festzustellen, ob der Pfad korrekt ist,

    1. Klicken Sie auf Startund dann auf Ausführen.

    2. Kopieren Sie den Wert aus der Registrierung, und fügen Sie den Wert in das Dialogfeld Ausführen . Hinweis Entfernen Sie die Befehlszeilenoption/Automation vor der Ausführung der Anwendungdes.

    3. Klicken Sie auf OK.

    4. Stellen Sie sicher, dass die Anwendung korrekt ausgeführt wird. Wenn die Anwendung ausgeführt wird, nachdem Sie auf OKklicken, wird der Server korrekt registriert. Wenn die Anwendung nicht ausgeführt wird, klicken Sie auf OK, ersetzen Sie den Wert des Schlüssels LocalServer32 durch den korrekten Pfad. Verwenden Sie einen kurzen Pfadnamen, falls möglich.

  • Testen Sie eine Beschädigung der Vorlage "Normal.dot" oder der Ressourcendatei "Excel.xlb". Probleme können auftreten, wenn Sie Microsoft Word oder Microsoft Excel automatisieren, entweder die Vorlage "Normal.dot" in Word oder die Ressourcendatei "Excel.xlb" in Excel ist beschädigt. Um diese Dateien zu testen, suchen Sie die lokalen Festplatten für alle Instanzen von "Normal.dot" oder "Excel.xlb". Hinweis Sie können mehrere Kopien dieser Dateien finden. Es wird eine Kopie für jede dieser Dateien für jedes Benutzerprofil auf dem System installiert ist. Dateien Normal.dot und Excel.xlb vorübergehend umbenennen, und führen Sie Ihren Automatisierungstest erneut. Word und Excel erstellen beide diese Dateien, wenn sie sie nicht finden können. Stellen Sie sicher, dass der Code funktioniert. Wenn der Code beim Erstellen eine neue Datei "Normal.dot", löschen Sie die von Ihnen umbenannten Dateien Diese Dateien sind beschädigt. Wenn der Code nicht funktioniert, müssen Sie diese Dateien in den ursprünglichen Dateinamen zu benutzerdefinierten Einstellungen, die in diesen Dateien gespeichert werden zurückgesetzt.

  • Führen Sie die Anwendung unter dem Administratorkonto. Office-Server benötigen Lese-/Schreibzugriff auf die Registrierung und das Laufwerk. Server können nicht korrekt geladen, wenn die aktuelle Sicherheitsstufe Schreibzugriff verweigern.

Überprüfen des Systems

Systemkonfiguration kann auch für die Erstellung von Out-of-Process-COM-Server beeinträchtigen. Um zu beheben, verwenden Sie die folgenden Methoden auf dem System, auf dem der Fehler auftritt:

  • Bestimmt, ob das Problem mit einem Out-of-Process-Server. Haben Sie eine Anwendung, die einen bestimmten COM-Server (z.B. Word), testen Sie einen anderen Out-of-Process-Server sicherstellen, dass das Problem nicht in der COM-Schicht selbst auftritt. Einen Out-of-Process-COM-Server auf dem Computer erstellen können, installieren Sie die OLE-Systemdateien wie im Abschnitt "Installieren von Microsoft Office" dieses Artikels beschrieben oder installieren Sie zum Beheben des Problems das Betriebssystem neu.

  • Überprüfen Sie die Versionsnummern der OLE-Systemdateien, die Automatisierung verwalten. Diese Dateien werden üblicherweise als Satz installiert. Diese Dateien müssen Build-Nummern übereinstimmen. Ein falsch konfiguriertes Setupprogramm kann die Dateien irrtümlicherweise separat installieren. Dadurch werden die Dateien nicht überein. Überprüfen Sie zur Vermeidung von Problemen bei der Automatisierung der Dateien sicherstellen, dass die Builds der Dateien übereinstimmen. Die Automatisierungsdateien liegen im Verzeichnis Windows\System32. Überprüfen Sie die folgenden Dateien.

    Dateiname

    Version

    Änderungsdatum

    Asycfilt.dll

    10.0.16299.15

    29. September 2017

    Ole32.dll

    10.0.16299.371

    29 März 2018

    Oleaut32.dll

    10.0.16299.431

    3 Mai 2018

    Olepro32.dll

    10.0.16299.15

    29. September 2017

    Stdole2.tlb

    3.0.5014

    29. September 2017

    Untersuchen Sie die Dateiversion mit der rechten Maustaste in Windows Explorer der Datei und klicken Sie dann auf Eigenschaften. Beachten Sie die letzten vier Ziffern der Dateiversion (die Build-Nummer) und das Datum der letzten der Datei Änderung. Stellen Sie sicher, dass diese Werte für alle Automatisierungsdateien identisch sind. Hinweis Dateien für Windows 10 Version 1709, Build 16299.431. Diese Zahlen sind nur Beispiele. Die Werte können abweichen.

  • Verwenden Sie das Systemkonfigurationsprogramm (Msconfig.exe) Dienste und System starten zu Drittanbieter-Anwendung, die Ausführung von Code in Office-Anwendung einschränken. Weitere Informationen zu Msconfig.exe finden Sie im folgenden Artikel der Microsoft Knowledge Base:

    181966 Erweiterte Problembehandlung Einstellung von Systemkonfigurationsprogramm Beispielsweise können Outlook Automation Applikationen fehl, da Sie ein Antivirenprogramm ausführen, die "Skript Blocker" verfügt. Hinweis Deaktivieren Sie das Antivirusprogramm nur zeitweise auf einem Testsystem, das nicht mit dem Netzwerk verbunden ist. Sie können auch folgendermaßen Sie in Outlook Add-Ins von Drittanbietern deaktivieren Wenden Sie diese Methode das Problem behebt, die Fremdanbieter-Antivirusprogramms Informationen über ein Update für das Programm.

    1. Klicken Sie im Menü Datei auf Optionenund klicken Sie dann auf Add-Ins.

    2. Verwalten von COM-add-insauf und klicken Sie dann auf OK. Hinweis Das Dialogfeld com-add-ins .

    3. Deaktivieren Sie das Kontrollkästchen für alle Add-Ins von Drittanbietern

    4. Starten Sie Outlook neu.

Installieren Sie Office neu

Wenn keine vorherigen Verfahren das Problem entfernen und Neuinstallieren von Office.

Weitere Informationen finden Sie in folgendem Office- Artikel:

Downloaden und installieren oder erneut installieren auf einem PC oder Mac Office 365 oder Office 2016

Informationsquellen

Weitere Informationen zur Automatisierung von Office und Code-Beispiele finden Sie auf der folgenden Microsoft-Website:

Erste Schritte mit Office-Entwicklung

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×