Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Symptomen

Wanneer u Microsoft Visual Basic-code uitvoert die gebruikmaakt van Automation om Microsoft Word te beheren, ontvangt u mogelijk een van de volgende foutberichten:

Foutbericht 1

Runtimefout '-2147023174' (800706ba)
Automatiseringsfout

Foutbericht 2

Runtimefout '462': de externe servercomputer bestaat niet of is niet beschikbaar

Oorzaak

Visual Basic heeft een verwijzing naar Word gemaakt vanwege een regel code die een Word-object, -methode of -eigenschap aanroept zonder deze te kwalificeren met een Word objectvariabele. Visual Basic geeft deze verwijzing pas vrij totdat u het programma hebt beëindigd. Deze foutieve verwijzing verstoort automatiseringscode wanneer de code meer dan één keer wordt uitgevoerd.

Oplossing

Wijzig de code zodat elke aanroep naar een Word-object, -methode of -eigenschap wordt gekwalificeerd met de juiste objectvariabele.

Status

Dit gedrag is inherent aan het ontwerp van het product.

Meer informatie

Als u Word wilt automatiseren, stelt u een objectvariabele in die meestal verwijst naar het Word-toepassings- of documentobject. Andere objectvariabelen kunnen vervolgens worden ingesteld om te verwijzen naar een selectie, een bereik of andere objecten in het Word objectmodel. Wanneer u code schrijft voor het gebruik van een Word-object, -methode of -eigenschap, moet u de aanroep altijd voorafgaan door de juiste objectvariabele. Als u dat niet doet, gebruikt Visual Basic een verborgen globale variabelereferentie die wordt ingesteld op de momenteel actieve instantie. Als Word wordt afgesloten of als de opgegeven objectvariabele wordt vrijgegeven, verwijst de verborgen globale variabele nu naar een ongeldig (vernietigd) object. Wanneer u de automatiseringscode opnieuw uitvoert, mislukken aanroepen naar deze verborgen objectvariabele met de eerder genoemde fout.


In de volgende stappen ziet u hoe u dit probleem reproduceert en hoe u dit kunt oplossen.
 

Stappen voor het reproduceren van gedrag

  1. Start een nieuw Standard EXE-project in Visual Basic. Form1 wordt standaard gemaakt.

  2. Klik op Verwijzingen in het menu Project en klik vervolgens op een van de volgende opties:

    • Voor Office Word 2007 klikt u op Microsoft Word 12.0-objectbibliotheek

    • Klik voor Word 2003 op Microsoft Word 11.0-objectbibliotheek

    • Klik voor Word 2003 op Microsoft Word 10.0-objectbibliotheek

    • Klik voor Word 2000 op Microsoft Word 9.0-objectbibliotheek.

    • Klik voor Word 97 op Microsoft Word 8.0-objectbibliotheek.

  3. Plaats een commandbutton op Formulier1.

  4. Kopieer de volgende code naar het codevenster van Formulier1:

          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 knop Command. Er treedt geen fout op. Er is echter een verwijzing naar Word gemaakt en niet vrijgegeven.

  7. Klik nogmaals op de opdrachtknop en houd er rekening mee dat u de eerder beschreven fout ontvangt.

    Opmerking De fout treedt op omdat de code verwijst naar de methode InchesToPoints zonder voorafgaande aan de aanroep met de objectvariabele oWord.

  8. Stop het project en wijzig de volgende regel:

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -Aan-

     

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

  10. Klik nogmaals op de knop Command en u ziet dat de fout wordt weergegeven.

    Opmerking De fout treedt op omdat de code verwijst naar het object Bereik van de ActiveDocument-sectie zonder de aanroep te laten voorafgaan met de objectvariabele oWord.

  11. Stop het project en wijzig de volgende regel:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -Aan-
     

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

Wanneer u een Visual Basic-project bouwt dat Word automatiseert, en uw project een verwijzing bevat naar de Microsoft Word-objectbibliotheek, is voorbeeldcode voor de objecten, methoden en eigenschappen van het Word Objectmodel beschikbaar in het Help-bestand van Word. Wanneer de cursor boven een trefwoord in uw code staat, ziet u de toepasselijke Help-tekst door op F1 te drukken.


De voorbeeldcode in het Help-onderwerp is de Microsoft Word Visual Basic for Applications-code. De objectverwijzingen die uw Visual Basic-code vereist, worden niet weergegeven. U moet de kwalificaties indien nodig toevoegen.

Verwijzingen

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

178510 PRB: Excel Automation-methode van object '_Global' mislukt

Klik op het onderstaande artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven voor meer informatie over de Automatisering van Office-toepassingen:

Overzicht van Word objectmodel

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×