Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sintomas

Ao executar o código do Microsoft Visual Basic que usa a Automação para controlar o Microsoft Word, você pode receber uma das seguintes mensagens de erro:

Mensagem de erro 1

Erro de tempo de execução '-2147023174' (800706ba)
Erro de automação

Mensagem de erro 2

Erro em tempo de execução '462': o computador do servidor remoto não existe ou não está disponível

Causa

O Visual Basic estabeleceu uma referência a Word devido a uma linha de código que chama um objeto, método ou propriedade Word sem qualificá-lo com uma variável de objeto Word. O Visual Basic não libera essa referência até que você termine o programa. Essa referência errante interfere no código de automação quando o código é executado mais de uma vez.

Resolução

Modifique o código para que cada chamada para um objeto, método ou propriedade Word seja qualificado com a variável de objeto apropriada.

Status

Este é o comportamento padrão.

Informações adicionais

Para automatizar Word, você estabelece uma variável de objeto que geralmente se refere ao objeto Word Aplicativo ou Documento. Em seguida, outras variáveis de objeto podem ser definidas para se referir a uma Seleção, um Intervalo ou outros objetos no modelo de objeto Word. Ao escrever código para usar um objeto, método ou propriedade Word, você sempre deve preceder a chamada com a variável de objeto apropriada. Se você não fizer isso, o Visual Basic usará uma referência de variável global oculta que ela define como a instância em execução no momento. Se Word for desligamento ou se a variável de objeto declarada for liberada, a variável global oculta agora fará referência a um objeto inválido (destruído). Ao executar o código de automação novamente, as chamadas para essa variável de objeto oculto falharão com o erro mencionado acima.


As etapas a seguir ilustram como reproduzir esse problema e como corrigi-lo.
 

Etapas para reproduzir o comportamento

  1. Inicie um novo projeto STANDARD EXE no Visual Basic. O Form1 é criado por padrão.

  2. Clique em Referências no menu Projeto e clique em uma das seguintes opções:

    • Para o Office Word 2007, clique em Microsoft Word Biblioteca de Objetos 12.0

    • Para Word 2003, clique em Biblioteca de Objetos do Microsoft Word 11.0

    • Para Word 2003, clique em Microsoft Word Biblioteca de Objetos 10.0

    • Para Word 2000, clique em Microsoft Word Biblioteca de Objetos 9.0.

    • Para Word 97, clique em Microsoft Word Biblioteca de Objetos 8.0.

  3. Coloque um CommandButton no Form1.

  4. Copie o seguinte código para a Janela de Código do 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. No menu Executar , clique em Iniciar ou pressione a tecla F5 para iniciar o programa.

  6. Clique no CommandButton. Não ocorre nenhum erro. No entanto, uma referência a Word foi criada e não foi lançada.

  7. Clique no CommandButton novamente e observe que você recebe o erro descrito anteriormente.

    Observação O erro ocorre porque o código se refere ao Método InchesToPoints sem preceder a chamada com a variável de objeto oWord.

  8. Pare o projeto e altere a seguinte linha:

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -Para-

     

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Execute o programa novamente. Em seguida, clique no CommandButton. Não ocorre nenhum erro.

  10. Clique no CommandButton novamente e observe que você recebe o erro.

    Observação O erro ocorre porque o código se refere ao objeto Range da Seção ActiveDocument sem preceder a chamada com a variável de objeto oWord.

  11. Pare o projeto e altere a seguinte linha:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -Para-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Execute o programa novamente. Observe que você pode executar o código várias vezes sem erro.

Ao criar um projeto do Visual Basic automatizando Word, se o projeto tiver uma referência à Biblioteca de Objetos do Microsoft Word, o código de exemplo para os objetos, métodos e propriedades do modelo de objeto Word estará disponível no arquivo Word Ajuda. Quando o cursor estiver sobre uma palavra-chave em seu código, você verá qualquer texto de ajuda aplicável pressionando a chave F1.


O código de exemplo no tópico Ajuda será o código microsoft Word Visual Basic for Applications. Ele não mostrará as referências de objeto que o código do Visual Basic exige. Você precisará adicionar as qualificações conforme apropriado.

Referências

Para obter mais informações, consulte os seguintes artigos na Base de Dados de Conhecimento da Microsoft:

178510 PRB: Método de Automação do Excel do objeto '_Global'Failed

Para obter informações adicionais sobre a Automação de aplicativos do Office, clique no número do artigo abaixo para exibir o artigo na Base de Dados de Conhecimento da Microsoft:

visão geral do modelo de objeto Word

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×