Logg på med Microsoft
Logg på, eller opprett en konto.
Hei,
Velg en annen konto.
Du har flere kontoer
Velg kontoen du vil logge på med.

Symptomer

Når du kjører Microsoft Visual Basic-kode som bruker automatisering til å kontrollere Microsoft Word, kan du få en av følgende feilmeldinger:

Feilmelding 1

Kjøretidsfeil -2147023174 (800706ba)
Automatiseringsfeil

Feilmelding 2

Kjøretidsfeil 462: Den eksterne servermaskinen finnes ikke eller er ikke tilgjengelig

Årsak

Visual Basic har opprettet en referanse til Word på grunn av en kodelinje som kaller opp en Word objekt, metode eller egenskap uten å kvalifisere den med en Word objektvariabel. Visual Basic frigir ikke denne referansen før du avslutter programmet. Denne feilreferansen forstyrrer automatiseringskoden når koden kjøres mer enn én gang.

Løsning

Endre koden slik at hvert kall til et Word objekt, metode eller egenskap er kvalifisert med riktig objektvariabel.

Status

Denne virkemåten er etter utforming.

Mer informasjon

Hvis du vil automatisere Word, oppretter du en objektvariabel som vanligvis refererer til Word program- eller dokumentobjektet. Andre objektvariabler kan deretter angis til å referere til et utvalg, et område eller andre objekter i den Word objektmodellen. Når du skriver kode for å bruke et Word objekt, metode eller egenskap, bør du alltid sette den riktige objektvariabelen foran kallet. Hvis du ikke gjør det, bruker Visual Basic en skjult global variabelreferanse som angis til forekomsten som kjører. Hvis Word avsluttes, eller hvis den deklarerte objektvariabelen frigis, vil den skjulte globale variabelen nå referere til et ugyldig (ødelagt) objekt. Når du kjører automatiseringskoden på nytt, vil kall til denne skjulte objektvariabelen mislykkes med den nevnte feilen.


Følgende trinn illustrerer hvordan du gjenskaper dette problemet, og hvordan du retter det opp.
 

Fremgangsmåte for å reprodusere virkemåte

  1. Start et nytt Standard EXE-prosjekt i Visual Basic. Skjema1 er opprettet som standard.

  2. Klikk ReferanserProsjekt-menyen , og klikk deretter ett av følgende alternativer:

    • Klikk Microsoft Word 12.0-objektbibliotek for Office Word 2007

    • Klikk Microsoft Word 11.0-objektbibliotek for Word 2003

    • Klikk Microsoft Word 10.0-objektbibliotek for Word 2003

    • Klikk Microsoft Word 9.0-objektbibliotek for Word 2000.

    • Klikk Microsoft Word 8.0-objektbibliotek for Word 97.

  3. Plasser en CommandButton på Skjema1.

  4. Kopier følgende kode til kodevinduet i Skjema1:

          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. Klikk Start på Kjør-menyen, eller trykk F5 for å starte programmet.

  6. Klikk commandbuttonen. Det oppstår ingen feil. En referanse til Word er imidlertid opprettet og er ikke utgitt.

  7. Klikk CommandButton på nytt, og vær oppmerksom på at du får feilmeldingen som er beskrevet tidligere.

    Obs! Feilen oppstår fordi koden refererer til metoden InchesToPoints uten å ha oWord-objektvariabelen foran kallet.

  8. Stopp prosjektet, og endre følgende linje:

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -Å-

     

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Kjør programmet på nytt. Klikk deretter kommandoknappen. Det oppstår ingen feil.

  10. Klikk CommandButton på nytt, og vær oppmerksom på at du får feilen.

    Obs! Feilen oppstår fordi koden refererer til ActiveDocument-inndelingens områdeobjekt uten å sette oWord-objektvariabelen foran oppkallet.

  11. Stopp prosjektet, og endre følgende linje:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -Å-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Kjør programmet på nytt. Vær oppmerksom på at du kan kjøre koden flere ganger uten feil.

Når du bygger et Visual Basic-prosjekt som automatiserer Word, hvis prosjektet har en referanse til Microsoft Word-objektbiblioteket, er eksempelkode for objekter, metoder og egenskaper for Word objektmodell tilgjengelig fra hjelpefilen Word. Når markøren er over et nøkkelord i koden, ser du eventuell gjeldende hjelpetekst ved å trykke F1-tasten.


Eksempelkoden i hjelpeemnet er Microsoft Word Visual Basic for Applications-koden. Den viser ikke objektreferansene som Visual Basic-koden krever. Du må legge til kvalifikatorene etter behov.

Referanser

Hvis du vil ha mer informasjon, kan du se følgende artikler i Microsoft Knowledge Base:

178510 PRB: Automatiseringsmetoden for objektet _Global i Excel mislyktes

Hvis du vil ha mer informasjon om automatisering av Office-programmer, klikker du artikkelnummeret nedenfor for å vise artikkelen i Microsoft Knowledge Base:

Word oversikt over objektmodell

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.

Var denne informasjonen nyttig?

Hvor fornøyd er du med språkkvaliteten?
Hva påvirket opplevelsen din?
Når du trykker på Send inn, blir tilbakemeldingen brukt til å forbedre Microsoft-produkter og -tjenester. IT-administratoren kan samle inn disse dataene. Personvernerklæring.

Takk for tilbakemeldingen!

×