Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Quando si esegue codice Microsoft Visual Basic che usa l'automazione per controllare Microsoft Word, è possibile che venga visualizzato uno dei messaggi di errore seguenti:

Messaggio di errore 1

Errore di runtime '-2147023174' (800706ba)
Errore di automazione

Messaggio di errore 2

Errore di runtime '462': Il computer server remoto non esiste o non è disponibile

Causa

Visual Basic ha stabilito un riferimento a Word a causa di una riga di codice che chiama un oggetto, un metodo o una proprietà Word senza qualificarlo con una variabile oggetto Word. Visual Basic non rilascia questo riferimento finché non si termina il programma. Questo riferimento errante interferisce con il codice di automazione quando il codice viene eseguito più volte.

Risoluzione

Modificare il codice in modo che ogni chiamata a un oggetto, metodo o proprietà Word sia qualificata con la variabile oggetto appropriata.

Stato

Si tratta di un comportamento correlato alla progettazione del prodotto.

Ulteriori informazioni

Per automatizzare Word, è necessario stabilire una variabile oggetto che in genere fa riferimento all'oggetto Word Application o Document. Altre variabili oggetto possono quindi essere impostate in modo da fare riferimento a una selezione, un intervallo o altri oggetti nel modello a oggetti Word. Quando si scrive codice per usare un oggetto, un metodo o una proprietà Word, è consigliabile anteporre alla chiamata la variabile oggetto appropriata. In caso contrario, Visual Basic usa un riferimento a variabile globale nascosto che viene impostato sull'istanza attualmente in esecuzione. Se Word è in fase di arresto o se viene rilasciata la variabile oggetto dichiarata, la variabile globale nascosta farà ora riferimento a un oggetto non valido (eliminato). Quando si esegue di nuovo il codice di automazione, le chiamate a questa variabile oggetto nascosto avranno esito negativo con l'errore menzionato.


I passaggi seguenti illustrano come riprodurre il problema e come correggerlo.
 

Passaggi per riprodurre il comportamento

  1. Avviare un nuovo progetto STANDARD EXE in Visual Basic. Form1 viene creato per impostazione predefinita.

  2. Scegliere Riferimenti dal menu Progetto e quindi fare clic su una delle opzioni seguenti:

    • Per Office Word 2007, fare clic su Libreria oggetti di Microsoft Word 12.0

    • Per Word 2003, fare clic su Libreria oggetti di Microsoft Word 11.0

    • Per Word 2003, fare clic su Libreria oggetti di Microsoft Word 10.0

    • Per Word 2000, fare clic su Libreria oggetti di Microsoft Word 9.0.

    • Per Word 97, fare clic su Libreria oggetti di Microsoft Word 8.0.

  3. Posizionare un pulsante CommandButton in Form1.

  4. Copiare il codice seguente nella finestra del codice di 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. Nel menu Esegui fare clic su Start o premere F5 per avviare il programma.

  6. Fare clic sul pulsante CommandButton. Non si verifica alcun errore. Tuttavia, è stato creato un riferimento a Word e non è stato rilasciato.

  7. Fare di nuovo clic sul pulsante CommandButton e si noti che viene visualizzato l'errore descritto in precedenza.

    Nota L'errore si verifica perché il codice fa riferimento al metodo InchesToPoints senza prima la chiamata con la variabile oggetto oWord.

  8. Interrompere il progetto e modificare la riga seguente:

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -A-

     

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Eseguire di nuovo il programma. Quindi, fare clic sul pulsante CommandButton. Non si verifica alcun errore.

  10. Fare di nuovo clic sul pulsante CommandButton e si noti che viene visualizzato l'errore.

    Nota L'errore si verifica perché il codice fa riferimento all'oggetto Range della sezione ActiveDocument senza prima la chiamata con la variabile oggetto oWord.

  11. Interrompere il progetto e modificare la riga seguente:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -A-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Eseguire di nuovo il programma. Si noti che è possibile eseguire il codice più volte senza errori.

Quando si crea un progetto Visual Basic per automatizzare Word, se il progetto contiene un riferimento alla libreria di oggetti di Microsoft Word, il codice di esempio per gli oggetti, i metodi e le proprietà del modello a oggetti Word è disponibile nel file della Guida di Word. Quando il cursore si trova su una parola chiave nel codice, vedrai il testo della Guida applicabile premendo F1.


Il codice di esempio nell'argomento della Guida sarà il codice Word Visual Basic, Applications Edition Microsoft. Non visualizzerà i riferimenti agli oggetti necessari per il codice Visual Basic. Sarà necessario aggiungere i qualificatori in base alle esigenze.

Riferimenti

Per ulteriori informazioni, vedere gli articoli seguenti nella Microsoft Knowledge Base:

178510 PRB: Excel Automation Method of Object '_Global'Failed

Per altre informazioni sull'automazione delle applicazioni di Office, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

panoramica Word modello a oggetti

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×