Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Sintomas

Quando executa o código do Microsoft Visual Basic que utiliza a Automatização para controlar o Microsoft Word, poderá receber uma das seguintes mensagens de erro:

Mensagem de erro 1

Erro de tempo de execução "-2147023174" (800706ba)
Erro de automatização

Mensagem de erro 2

Erro de tempo de execução "462": A máquina 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 lança esta referência até terminar o programa. Esta referência errante interfere com o código de automatização quando o código é executado mais do que 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 adequada.

Estado

Este comportamento é por predefinição.

Mais Informações

Para automatizar Word, estabelece uma variável de objeto que normalmente se refere ao objeto Aplicação Word ou Documento. Outras variáveis de objeto podem então ser definidas para fazer referência a uma Seleção, um Intervalo ou outros objetos no modelo de objeto Word. Quando escreve código para utilizar um objeto, método ou propriedade Word, deve sempre preceder a chamada com a variável de objeto adequada. Se não o fizer, o Visual Basic utiliza uma referência de variável global oculta que define para a instância atualmente em execução. Se Word for encerrado ou se a variável de objeto declarado for libertada, a variável global oculta irá agora referenciar um objeto inválido (destruído). Ao executar novamente o código de automatização, as chamadas para esta variável de objeto oculto falharão com o erro acima mencionado.


Os passos seguintes ilustram como reproduzir este problema e como corrigi-lo.
 

Passos para Reproduzir Comportamento

  1. Inicie um novo projeto EXE Standard no Visual Basic. O Formulário1 é criado por predefinição.

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

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

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

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

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

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

  3. Coloque um CommandButton no Form1.

  4. Copie o seguinte código para a Janela de Código do Formulário1:

          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 prima a tecla F5 para iniciar o programa.

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

  7. Clique novamente no CommandButton e tenha em atenção que recebe o erro descrito anteriormente.

    Nota O erro ocorre porque o código refere-se 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)
    

    -to-

     

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

  10. Clique novamente no CommandButton e tenha em atenção que recebe o erro.

    Nota O erro ocorre porque o código refere-se ao objeto Intervalo da Secção ActiveDocument, sem antes da chamada com a variável de objeto oWord.

  11. Pare o projeto e altere a seguinte linha:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -to-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Execute o programa novamente. Tenha em atenção que pode executar o código várias vezes sem erros.

Ao criar um projeto do Visual Basic que automatiza Word, se o seu 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 está disponível a partir do ficheiro Word Ajuda. Quando o cursor estiver sobre uma palavra-chave no seu código, verá qualquer texto de Ajuda aplicável premindo a tecla F1.


O código de exemplo no tópico ajuda será o código do Microsoft Word Visual Basic for Applications. Não mostrará as referências de objeto necessárias para o código do Visual Basic. Terá de adicionar os qualificadores conforme adequado.

Referências

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

178510 PRB: O Método de Automatização do Objeto '_Global' do Excel falhou

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

descrição geral do modelo de objeto Word

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×