Wanneer u Visual Basic-code uitvoert die gebruikmaakt van automatisering om Word te besturen, wordt mogelijk het foutbericht ' runtimefout '-2147023174 (800706ba) ' weergegeven of ' runtimefout ' 462 '.

Symptomen

Wanneer u Microsoft Visual Basic-code uitvoert die gebruikmaakt van automatisering om Microsoft Word te besturen, kan een van de volgende foutberichten worden weergegeven:Foutbericht 1

Runtimefout '-2147023174 ' (800706ba) automatiseringsfout

Foutbericht 2

Runtimefout ' 462 ': de externe server computer bestaat niet of is niet beschikbaar

Oorzaak

Visual Basic heeft een verwijzing naar Word tot stand gebracht vanwege een regel code waarmee een Word-object,-methode of-eigenschap wordt aangeroepen zonder dat dit in overeenstemming is gebracht met een Word-objectvariabele. Deze verwijzing wordt niet vrijgegeven in Visual Basic totdat u het programma beÃĢindigt. Deze verkeerd-referentie verstoort met automatiseringscode wanneer de code meerdere keren wordt uitgevoerd.

Oplossing

Wijzig de code, zodat elk gesprek met een Word-object, een methode of een eigenschap wordt gekwalificeerd met de toepasselijke objectvariabele.

Status

Dit gedrag is inherent aan het ontwerp van het product.

Meer informatie

Om Word te automatiseren, moet u een objectvariabele instellen die meestal verwijst naar de Word-toepassing of het document object. U kunt ook andere objectvariabelen instellen om te verwijzen naar een selectie, een bereik of andere objecten in het Word-object model. Wanneer u code schrijft voor het gebruik van een Word-object,-methode of-eigenschap, moet u altijd voorafgaand aan het gesprek met de betreffende objectvariabele. Als dit niet het geval is, wordt in Visual Basic een verborgen globale variabele waarnaar wordt verwezen naar het actieve exemplaar. Als Word wordt afgesloten, of als de gedeclareerde objectvariabele wordt losgelaten, wordt er nu naar een ongeldig (vernietigd) object verwezen. Wanneer u de automatiseringscode weer uitvoert, mislukt het aanroepen van deze verborgen objectvariabele met de voornoemde fout. Aan de hand van de volgende stappen kunt u dit probleem verhelpen en hoe u het probleem kunt oplossen.

Stappen om gedrag te reproduceren

  1. Maak een nieuw Standard EXE-project in Visual Basic. Formulier1 wordt standaard gemaakt.

  2. Klik in het menu project op verwijzingen en klik op een van de volgende opties:

    • Klik voor Office Word 2007 op Microsoft Word 12,0 object Library

    • Voor Word 2003 klikt u op Microsoft Word 11,0-object bibliotheek

    • Voor Word 2003 klikt u op Microsoft Word 10,0-object bibliotheek

    • Voor Word 2000 klikt u op Microsoft Word 9,0 object Library.

    • Voor Word 97 klikt u op Microsoft Word 8,0 object Library.

  3. Plaats een CommandButton op Form1.

  4. Kopieer de volgende code naar het codevenster van 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. Klik in het menu uitvoeren op Start of druk op F5 om het programma te starten.

  6. Klik op de CommandButton. Er treedt geen fout op. Er is echter wel een verwijzing naar Word gemaakt en deze is niet vrijgegeven.

  7. Klik opnieuw op de CommandButton en Let erop dat de fout eerder is beschreven.Opmerking De fout treedt op omdat de code verwijst naar de methode InchesToPoints zonder voorafgaand aan het gesprek voorafgaand aan de oWord-objectvariabele.

  8. Het project stoppen en de volgende regel wijzigen:

    .PageSetup.LeftMargin = InchesToPoints(1.25)

    kunnen

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
  9. Voer het programma opnieuw uit. Klik vervolgens op de CommandButton. Er treedt geen fout op.

  10. Klik opnieuw op de CommandButton en Let erop dat u de foutmelding krijgt.Opmerking De fout treedt op omdat de code het bereik van het Objectbereik van het object in de vorm van een oWord-objectvariabele verwijst zonder voorafgaand aan het gesprek.

  11. Het project stoppen en de volgende regel wijzigen:

    Set oRange = ActiveDocument.Sections(1).Range

    kunnen

    Set oRange = oWord.ActiveDocument.Sections(1).Range
  12. Voer het programma opnieuw uit. Houd er rekening mee dat u de code meerdere malen zonder fouten kunt uitvoeren.

Wanneer u een Visual Basic-project maakt met het automatiseren van Word en de voorbeeldcode voor de objecten, methoden en eigenschappen van het object model van Word, kunt u dit in het Help-bestand van Word vinden. Wanneer de cursor zich boven een trefwoord in de code bevindt, ziet u de bijbehorende Help-tekst door op de toets F1 te drukken. De voorbeeldcode in het Help-onderwerp is de Microsoft Word Visual Basic for Applications-code. Er worden geen objectverwijzingen weergegeven waarvoor uw Visual Basic-code is vereist. U moet de gewenste scheidingstekens toevoegen.

Verwijzingen

Zie de volgende artikelen in Microsoft Knowledge Base voor meer informatie:

178510 PRB: automatiseringsmethode van object van object ' _Global ' is mislukt

167223 Help-bestand Microsoft Office 97 Automatisering beschikbaarAls u meer wilt weten over automatisering van Office-toepassingen, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:

222101 PROCEDURE: Documentatie voor het Office-object model zoeken en gebruiken

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

×