Um erro de tempo de execução 429 é exibido ao automatizar os aplicativos do Office

Traduções deste artigo Traduções deste artigo
ID do artigo: 828550 - Exibir os produtos aos quais esse artigo se aplica.
Para obter uma versão deste artigo para o Microsoft Office XP, o Office 2000 e Office 97, consulte 244264.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Ao usar o operador New ou a função CreateObject no Microsoft Visual Basic para criar uma instância de um aplicativo do Microsoft Office, a seguinte mensagem de erro pode ser exibida:
Erro em tempo de execução '429': Componente do ActiveX não pode criar objeto
Esse erro ocorre quando o COM (Component Object Model) não pode criar o objeto Automação solicitado e, portanto, o objeto Automação não fica disponível no Visual Basic Este erro não ocorre em todos os computadores.

Este artigo descreve como diagnosticar e resolver os problemas comuns que podem causar esse erro.

Mais Informações

No Visual Basic, existem várias causas para o erro 429. O erro ocorre se uma das seguintes condições for verdadeira:
  • Há um erro no aplicativo.
  • Há um erro na configuração do sistema.
  • Há um componente não encontrado.
  • Há um componente danificado.
Para encontrar a causa do erro, isole o problema. Se uma erro 429 for exibido em um computador cliente, use as seguintes informações para isolá-lo e resolvê-lo nos aplicativos do Microsoft Office.

Observação Algumas das seguintes informações também podem ser aplicadas aos servidores COM que não são do Office. No entanto, este artigo presume que você queira automatizar os aplicativos do Office.

Examinar o código

Antes de você solucionar o erro, tente isolar uma única linha do código que pode causar o problema.

Se você descobrir que uma única linha do código pode estar causando o problema, conclua os seguintes procedimentos:
  • Verifique se o código use a criação de objeto explícito.

    É fácil identificar os problemas se eles estiverem restritos a uma única ação. Por exemplo, procure pelo uso da criação de objeto implícito como sendo um dos seguintes.

    Código de amostra 1
    Application.Documents.Add 'DON'T USE THIS!!
    Código de amostra 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    Os dois códigos de amostra usam a criação de objeto implícito. O Microsoft Office Word 2003 não inicia até que a variável seja chamada pelo menos uma vez. Como a variável pode ser chamada em diferentes partes do programa, pode ser difícil localizar o problema. Pode ser difícil verificar se o problema é causado quando o objeto Aplicativo ou Documento for criado.

    Em vez disso, é possível fazer chamadas explícitas para criar cada objeto separadamente, conforme a seguir.
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    Ao fazer chamadas explícitas para criar cada objeto separadamente, é fácil isolar o problema. Isto também facilita a leitura do código.
  • Use a função CreateObject em vez de usar o operador New ao criar uma instância de um aplicativo do Office.

    A função CreateObject mapeia de perto o processo de criação que a maioria dos clientes do Microsoft Visual C++ usam. A função CreateObject também permite alterações no CLSID do servidor entre as versões. É possível usar a função CreateObject com objetos acoplados anterior e posteriormente.
  • Verifique se a cadeia de caracteres "ProgID" passada para CreateObject está correta a cadeia de caracteres "ProgID" é uma versão independente. Por exemplo, use a cadeia de caracteres "Excel.Application" em vez da "Excel.Application.8". O sistema que falha pode ter uma versão mais antiga, ou mais recente, do Microsoft Office do que a versão especificada na cadeia de caracteres "ProgID".
  • Use o comando Erl para relatar o número de linha do código que não tem êxito. Isso pode ajudá-lo a depurar os aplicativos que não podem ser executados no IDE. O seguinte código informa qual objeto Automação não pode ser criado (Microsoft Word ou Microsoft Office Excel 2003):
    Dim oWord As Word.Application
     	Dim oExcel As Excel.Application
     	
     	On Error Goto err_handler
     	
     	1: Set oWord = CreateObject("Word.Application")
     	2: Set oExcel = CreateObject("Excel.Application")
     	
     	' ... some other code
     	
     	err_handler:
     	  MsgBox "The code failed at line " & Erl, vbCritical
    Use a função MsgBox e o número de linha para rastrear o erro.
  • Use as ligações posteriores conforme a seguir:
    Dim oWordApp As Object
    Os objetos acoplados anteriormente requerem que as interfaces personalizadas que seja feito marshaling pelos limites do processo. Se não for possível fazer o marshaling da interface personalizada durante CreateObject ou durante New, o erro 429 é exibido. Um objeto acoplado posteriormente usa a interface definida pelo sistema IDispatch que não requer que seja feito o marshaling em um proxy personalizado. Use um objeto acoplado posteriormente para verificar se este procedimento funciona corretamente.

    Se o problema ocorrer apenas quando o objeto for acoplado anteriormente, o problema está no aplicativo de servidor. Normalmente, é possível reinstalar o aplicativo conforme descrito na seção "Examinar o servidor de automação" deste artigo para corrigir o problema.

Examinar o servidor de automação

A razão mais comum para um erro ocorrer com CreateObject ou com New é um problema no aplicativo de servidor. Normalmente, a configuração ou a inicialização do aplicativo causa o problema. Para solucionar o problema, use os seguintes procedimentos:
  • Verifique se o aplicativo do Office que deseja automatizar está instalado no computador local. Verifique se é possível executar o aplicativo. Para fazer isto, clique em Iniciar, em Executar e tente executar o aplicativo. Se não for possível executar o aplicativo manualmente, ele não funcionará pela automação.
  • Registre novamente o aplicativo conforme a seguir:
    1. Clique em Iniciar e em Executar.
    2. Na caixa de diálogo Executar, digite o caminho do servidor e anexe /RegServer no final da linha.
    3. Clique em OK.

      O aplicativo é executado em modo silencioso. O aplicativo é registrado novamente como um servidor COM.
    Se o problema ocorrer devido a uma chave do Registro não encontrada, estas etapas normalmente poderiam corrigir o problema.
  • Examine a chave LocalServer32 no CLSID para o aplicativo que deseja automatizar. Verifique se a chave LocalServer32 aponta para a localização correta do aplicativo. Verifique se o nome de caminho está em um formato de caminho curto (DOS 8.3). Não é necessário registrar um servidor usando um nome de caminho curto. No entanto, nomes de caminho longos que incluem espaços incorporados podem causar problemas em alguns sistemas.

    Para examinar a chave do caminho armazenada no servidor, inicie o Editor do Registro do Windows, conforme a seguir:
    1. Clique em Iniciar e em Executar.
    2. Digite regedit e clique em OK.
    3. Mova para a chave HKEY_CLASSES_ROOT\CLSID.

      Os CLSIDs para os servidores de automação registrados no sistema estão nesta chave.
    4. Use os seguintes valores da chave CLSID para localizar a chave que representa o aplicativo do Office que deseja automatizar. Examine a chave LocalServer32 da chave CLSID do caminho.
      Recolher esta tabelaExpandir esta tabela
      Office ServerChave CLSID
      Access.Application{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
      Excel.Application{00020812-0000-0000-C000-000000000046}
      FrontPage.Application {04DF1015-7007-11D1-83BC-006097ABE675}
      Outlook.Application{0006F03A-0000-0000-C000-000000000046}
      PowerPoint.Application{91493441-5A91-11CF-8700-00AA0060263B}
      Word.Application{000209FF-0000-0000-C000-000000000046}
    5. Verifique se o caminho corresponde à localização real do arquivo.
    Observação Nomes de caminhos curto podem parecer corretos quando estão incorretos. Por exemplo, o Office e o Microsoft Internet Explorer (se estiverem instalados nos locais padrão) têm um caminho curto semelhante a C:\PROGRA~1\MICROS~X\ (em que X é um número). Este nome pode, inicialmente, não parecer ser um nome de caminho curto.

    Para determinar se o caminho está correto, execute as seguintes etapas:
    1. Clique em Iniciar e em Executar.
    2. Copie o valor do Registro e cole-o na caixa de diálogo Executar.

      Observação Remova a opção /automation antes de executar o aplicativo.
    3. Clique em OK.
    4. Verifique se o aplicativo está executando corretamente.

      Se o aplicativo executar após clicar em OK, o servidor estará registrado corretamente. Se o aplicativo não executar após clicar em OK, substitua o valor da chave LocalServer32 pelo caminho correto. Use um nome de caminho curto, se possível.
  • Teste em busca de possíveis corrupções no modelo Normal.dot ou no arquivo de recurso Excel.xlb. Os problemas podem ocorrer ao automatizar o Microsoft Word ou o Microsoft Excel, se o modelo Normal.dot no Word ou o arquivo de recurso Excel.xlb no Excel estiver corrompido. Para testar estes arquivos, pesquise os disco rígidos locais para todas as instâncias do Normal.dot ou do Excel.xlb.

    Observação Nos sistemas executando o Microsoft Windows 2000 ou o Microsoft Windows XP, é possível localizar várias cópias desses arquivos. Há uma cópia para cada um desses arquivos e para cada perfil de usuário instalado no sistema.

    Renomeie temporariamente os arquivos Normal.dot ou Excel.xlb e execute novamente o teste de automação. O Word e o Excel criam estes arquivos se não conseguirem encontrá-los. Verifique se o código funciona Se o código funcionar quando um novo arquivo Normal.dot for criado, exclua os arquivos renomeados. Esses arquivos estão corrompidos. Se o código não funcionar, será necessário renomeá-los novamente para os nomes de arquivo originais para salvar todas as configurações personalizadas, que foram salvas nos arquivos.
  • Se o sistema executar o Windows 2000, execute o aplicativo na conta de Administrador. Os servidores do Office requerem acesso de leitura/gravação para o Registro e a unidade de disco. Os servidores do Office podem não carregar corretamente se as configurações de segurança atuais negarem o acesso de leitura/gravação.

Examinar o sistema

A configuração do sistema também pode causar problemas na criação dos servidores COM fora do processo. Para solucionar o problema, use os seguintes procedimentos no sistema em que ocorreu o erro:
  • Determine se o problema ocorre em todos os servidores fora do processo. Se você tiver um aplicativo que use um determinado servidor COM (como o Word), teste um outro servidor fora do processo para verificar se o problema não é da própria camada COM. Caso não possa criar um servidor COM fora do processo no computador, reinstale os arquivos de sistema OLE conforme descrito na seção "Reinstalando o Microsoft Office" deste artigo ou reinstale o sistema operacional para resolver o problema.
  • Examine os números da versão para os arquivos de sistema OLE que gerenciam a automação. Estes arquivos são normalmente instalados como um conjunto. Estes arquivos dever corresponder nos números da compilação. Um utilitário de inicialização configurado de forma incorreta pode, erroneamente, instalar os arquivos separadamente. Isso faz com que o arquivo seja incompatível. Para evitar problemas com a automação, examine os arquivos para verificar se as compilações do arquivo são compatíveis.

    Os arquivos de automação estão localizados no diretório Windows\System32 ou Winnt\System32. Examine os seguintes arquivos:
    Recolher esta tabelaExpandir esta tabela
    Nome do arquivoVersãoData da modificação
    Asycfilt.dll3.50.501404 de setembro de 2002
    Oleaut32.dll3.50.501604 de setembro de 2002
    Olepro32.dll5.0.501404 de setembro de 2002
    Stdole2.tlb3.0.501404 de setembro de 2002
    Para examinar a versão do arquivo, clique com o botão direito do mouse no arquivo no Windows Explorer, e clique em Propriedades. Observe os últimos quatro dígitos da versão do arquivo (o número da compilação) e a data da última modificação do arquivo. Verifique se estes valores são os mesmos para todos os arquivos de automação.

    Observação Os números de versões anteriores e as datas anteriores são recuperados de um computador que está usando um computador com o Windows Server 2003 com o 2003 instalado. Estes números e datas são usados apenas como exemplos. Os valores podem ser diferentes.

    Se o arquivo não corresponder ao números de compilação ou às datas modificadas, baixe um utilitário de extração automática que atualize os arquivos de automação.

    Para obter mais informações sobre como acessar os arquivos de tempo de execução, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
    235420 Vbrun60sp4.exe instala os arquivos de tempo de execução do Visual Basic 6.0 SP4
  • Use o utilitário de Configuração do Sistema (Msconfig.exe) para examinar os serviços e a inicialização do sistema para os aplicativos de terceiros, que possam restringir o código em execução no aplicativo do Office. Para obter mais informações sobre o Msconfig.exe, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
    310560 Como resolver problemas usando do utilitário de Configuração do sistema no Windows XP
    Por exemplo, os aplicativos de automação do Outlook podem falhar porque você está executando um programa antivírus que tem o recurso "bloqueador de script".

    Observação Apenas desabilite temporariamente no programa antivírus em um sistema de avaliação que não está conectado à rede.

    Como alternativa, execute as seguintes etapas no Outlook para desabilitar os suplementos de terceiros:
    1. No menu Ferramentas, clique em Opções.
    2. Na guia Outras e em Opções avançadas.
    3. Na caixa de diálogo Opções avançadas, clique em Gerenciador de suplementos.
    4. Desmarque a caixa de seleção dos suplementos de terceiros.
    5. Reinicie o Outlook.
    Se esse método resolver o problema, contate o fornecedor de antivírus de terceiros para obter mais informações sobre uma atualização para o programa antivírus.

Reinstalar o Office

Se nenhum dos procedimentos anteriores resolver o problema, remova e reinstale o Office. A Microsoft aconselha remover a primeira versão existente e reinstalar o Office, usando os discos de instalação originais.

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft (alguns artigos podem estar em inglês):
219423 Como remover o CD1 do Office 2000
158658 Como remover completamente o Microsoft Office 97

Referências

Para obter mais informações sobre como solucionar problemas da mensagem de erro '429', clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):
240377 Como assegurar que o Jet 3.5 esteja instalado corretamente (parte I)
Para obter mais informações sobre a automação do Office e sobre os códigos de exemplo, visite o seguinte site da Microsoft (em inglês):
http://support.microsoft.com/ofd

Propriedades

ID do artigo: 828550 - Última revisão: terça-feira, 12 de junho de 2007 - Revisão: 5.2
A informação contida neste artigo aplica-se a:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Office SharePoint Designer 2007
  • Microsoft Office FrontPage 2003
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
Palavras-chave: 
kbexpertisebeginner kbtshoot kbprogramming kberrmsg kbautomation kbinfo KB828550

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com