Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Problembeschreibung

Wenn Sie Microsoft Visual Basic-Code ausführen, der Automation zum Steuern von Microsoft Word verwendet, erhalten Sie möglicherweise eine der folgenden Fehlermeldungen:

Fehlermeldung 1

Laufzeitfehler "-2147023174" (800706ba)
Automatisierungsfehler

Fehlermeldung 2

Laufzeitfehler "462": Der Remoteservercomputer ist nicht vorhanden oder nicht verfügbar.

Ursache

Visual Basic hat aufgrund einer Codezeile, die ein Word Objekt, eine Methode oder eigenschaft aufruft, ohne sie mit einer Word Objektvariablen zu qualifizieren, einen Verweis auf Word eingerichtet. Visual Basic gibt diesen Verweis erst wieder frei, wenn Sie das Programm beenden. Dieser fehlerhafte Verweis beeinträchtigt automatisierungscode, wenn der Code mehrmals ausgeführt wird.

Lösung

Ändern Sie den Code so, dass jeder Aufruf eines Word -Objekts, -Methode oder -Eigenschaft mit der entsprechenden Objektvariablen qualifiziert wird.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Um Word zu automatisieren, richten Sie eine Objektvariable ein, die in der Regel auf das Word Application- oder Document-Objekt verweist. Andere Objektvariablen können dann so festgelegt werden, dass sie auf eine Auswahl, einen Bereich oder andere Objekte im Word Objektmodell verweisen. Wenn Sie Code schreiben, um ein Word -Objekt, -Methode oder -Eigenschaft zu verwenden, sollten Sie dem Aufruf immer die entsprechende Objektvariable vorangehen. Andernfalls verwendet Visual Basic einen ausgeblendeten globalen Variablenverweis, der auf den aktuell ausgeführten instance festgelegt wird. Wenn Word heruntergefahren wird oder die deklarierte Objektvariable freigegeben wird, verweist die ausgeblendete globale Variable jetzt auf ein ungültiges (zerstörtes) Objekt. Beim erneuten Ausführen des Automatisierungscodes schlagen Aufrufe dieser ausgeblendeten Objektvariablen mit dem oben genannten Fehler fehl.


Die folgenden Schritte veranschaulichen, wie sie dieses Problem reproduzieren und beheben.
 

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie ein neues Standard EXE-Projekt in Visual Basic. Form1 wird standardmäßig erstellt.

  2. Klicken Sie im Menü Projekt auf Verweise, und klicken Sie dann auf eine der folgenden Optionen:

    • Klicken Sie für Office Word 2007 auf Microsoft Word 12.0-Objektbibliothek.

    • Klicken Sie Word 2003 auf Microsoft Word 11.0-Objektbibliothek.

    • Klicken Sie Word 2003 auf Microsoft Word 10.0-Objektbibliothek.

    • Klicken Sie für Word 2000 auf Microsoft Word 9.0-Objektbibliothek.

    • Klicken Sie für Word 97 auf Microsoft Word 8.0-Objektbibliothek.

  3. Platzieren Sie ein CommandButton-Steuerelement auf Form1.

  4. Kopieren Sie den folgenden Code in das Codefenster von Form1:

          Option Explicit
    
          Private Sub Command1_Click()
             Dim oWord As Word.Application
             Dim oDoc As Word.Document
             Dim oRange as Word.Range
    
             Set oWord = CreateObject("Word.Application")
             With oWord
                 .Visible = True
                 .Activate
                 .WindowState = wdWindowStateNormal
             End With
    
             Set oDoc = oWord.Documents.Add
             MsgBox "Document open", vbMsgBoxSetForeground
             With oDoc
                 .PageSetup.LeftMargin = InchesToPoints(1.25)
             End With
    
             ' This example inserts text at the end of section one.
             Set oRange = ActiveDocument.Sections(1).Range
             With oRange
                 .MoveEnd Unit:=wdCharacter, Count:= -1
                 .Collapse Direction:=wdCollapseEnd
                 .InsertParagraphAfter
                 .InsertAfter "End of section."
             End With
    
             With oDoc
                 .Saved = True
             End With
    
             Set oRange = Nothing
             Set oDoc = Nothing
             oWord.Quit
             Set oWord = Nothing
          End Sub
    
  5. Klicken Sie im Menü Ausführen auf Start , oder drücken Sie F5, um das Programm zu starten.

  6. Klicken Sie auf commandButton. Es tritt kein Fehler auf. Es wurde jedoch ein Verweis auf Word erstellt und nicht freigegeben.

  7. Klicken Sie erneut auf commandButton, und beachten Sie, dass der zuvor beschriebene Fehler angezeigt wird.

    Hinweis Der Fehler tritt auf, weil der Code auf die InchesToPoints-Methode verweist, ohne dem Aufruf mit der oWord-Objektvariablen voran zu gehen.

  8. Beenden Sie das Projekt, und ändern Sie die folgende Zeile:

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -An-

     

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Führen Sie das Programm erneut aus. Klicken Sie dann auf commandButton. Es tritt kein Fehler auf.

  10. Klicken Sie erneut auf commandButton, und beachten Sie, dass der Fehler angezeigt wird.

    Hinweis Der Fehler tritt auf, weil der Code auf das Range-Objekt von ActiveDocument Section verweist, ohne dem Aufruf mit der oWord-Objektvariablen voran zu gehen.

  11. Beenden Sie das Projekt, und ändern Sie die folgende Zeile:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -An-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Führen Sie das Programm erneut aus. Beachten Sie, dass Sie den Code mehrmals ohne Fehler ausführen können.

Wenn Ihr Projekt beim Erstellen eines Visual Basic-Projekts zur Automatisierung von Word über einen Verweis auf die Microsoft Word-Objektbibliothek verfügt, ist Beispielcode für die Objekte, Methoden und Eigenschaften des Word-Objektmodells in der Word Hilfedatei verfügbar. Wenn sich der Cursor über einem Schlüsselwort in Ihrem Code befindet, sehen Sie den entsprechenden Hilfetext, indem Sie F1 drücken.


Der Beispielcode im Hilfethema ist der Microsoft Word Visual Basic for Applications-Code. Es werden nicht die Objektverweise angezeigt, die für Ihren Visual Basic-Code erforderlich sind. Sie müssen die Qualifizierer nach Bedarf hinzufügen.

Informationsquellen

Weitere Informationen finden Sie in den folgenden Artikeln in der Microsoft Knowledge Base:

178510 PRB: Excel-Automatisierungsmethode des Objekts "_Global" fehlgeschlagen

Weitere Informationen zur Automatisierung von Office-Anwendungen finden Sie in der folgenden Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

Übersicht über Word-Objektmodell

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×