Ao pressionar Alt+F11 para abrir o Editor VBA no Word e executar uma macro, você pode ver um pop-up que diz Compile Error: Method or Data Member Not Found. Esse erro impede a execução da macro e destaca uma linha de código em amarelo. A causa raiz geralmente é uma referência de objeto ausente, um erro de digitação no código ou uma referência quebrada a uma biblioteca ou suplemento. Este artigo explica por que esse erro ocorre e fornece correções passo a passo para resolvê-lo, incluindo verificar referências, corrigir a sintaxe do código e reparar projetos corrompidos.
Principais conclusões: Resolvendo o erro de compilação VBA no Word
- Ferramentas > Referências no Editor VBA: Verifique referências quebradas marcadas como MISSING e desmarque-as para limpar o erro.
- Alt+F11 > Depurar > Compilar VBAProject: Execute este comando para identificar a linha exata com o erro e corrigir erros de digitação ou métodos ausentes.
- Exportar e reimportar módulos: Remova módulos VBA corrompidos exportando-os para um arquivo .bas e reimportando-os em um projeto limpo.
Por que o Editor VBA mostra ‘Method or Data Member Not Found’
Esse erro de compilação ocorre quando o interpretador VBA não consegue corresponder um nome de método ou propriedade a nenhum membro do objeto que você está usando. Em termos mais simples, o código tenta chamar uma função ou acessar uma propriedade que não existe para aquele tipo de objeto. Por exemplo, se você escrever ActiveDocument.SaveAs2 mas o objeto não tiver um método SaveAs2, o erro aparece.
Os gatilhos mais comuns são:
- Referências quebradas: Quando uma biblioteca referenciada (como uma biblioteca de objetos do Word ou um suplemento COM externo) está ausente ou não registrada, o editor VBA não consegue resolver os membros desses objetos.
- Erros de digitação: Um nome de método escrito incorretamente, como
Openem vez deOpenouCloseem vez deClose, causa o erro. - Tipo de objeto errado: Usar um método que pertence a um objeto diferente, como chamar
Paragraphs(1).BoldquandoBoldé uma propriedade do objetoFont, não do objetoParagraph. - Projeto VBA corrompido: Importar código de uma fonte não confiável ou de um arquivo .dotm danificado pode introduzir referências inválidas que disparam o erro.
O erro sempre interrompe a compilação, então a macro não será executada até que você corrija a linha problemática. O editor VBA destaca a linha problemática em amarelo e posiciona o cursor perto do identificador não reconhecido.
Passos para corrigir o erro de compilação
Siga estes passos em ordem. Comece com a verificação mais simples — referências quebradas — e vá para correções de código apenas se necessário.
Verificar e reparar referências quebradas
- Abra o Editor VBA
Pressione Alt+F11 no Word para abrir o Editor VBA. - Abra a caixa de diálogo Referências
Na barra de menus do Editor VBA, clique em Ferramentas e depois em Referências. A caixa de diálogo Referências lista todas as bibliotecas que seu projeto usa. - Identifique referências ausentes
Procure por qualquer referência que comece com MISSING na lista. Por exemplo,MISSING: Microsoft Word 16.0 Object Libraryindica uma referência quebrada. Desmarque a caixa ao lado de qualquer entrada MISSING. - Remova referências órfãs
Se você vir referências que apontam para arquivos que não existem mais no seu sistema (como um suplemento COM antigo), desmarque-as. Não desmarque referências que não estão marcadas como MISSING a menos que tenha certeza de que não são usadas. - Adicione uma nova referência se necessário
Se você removeu uma referência à biblioteca de objetos do Word, role para baixo na lista, marque Microsoft Word 16.0 Object Library (ou a versão correspondente à sua instalação do Office) e clique em OK. - Recompile o projeto
No Editor VBA, clique em Depurar e depois em Compilar VBAProject. Se nenhum erro aparecer, a correção está completa.
Corrigir erros de código compilando o projeto
- Abra o Editor VBA
Pressione Alt+F11 no Word. - Execute o comando Compilar
Clique em Depurar na barra de menus e escolha Compilar VBAProject. O editor parará no primeiro erro e destacará a linha em amarelo. - Leia o identificador destacado
Olhe para a linha amarela. A parte que não é reconhecida será selecionada. Por exemplo, se a linha disserSelection.Font.Size = 12eFontestiver destacado, você pode ter um erro de digitação ou o objeto não tem uma propriedadeFont. - Corrija o código
Corrija o erro de digitação ou substitua o método pelo correto. Use o Navegador de Objetos (F2) para pesquisar métodos válidos. Para o exemploFont, certifique-se de estar usandoSelection.Font, nãoSelection.Fon. - Recompile após cada correção
Pressione Ctrl+F5 para recompilar. Repita até que nenhum erro apareça.
Exportar e reimportar módulos para corrigir corrupção
- Abra o Editor VBA
Pressione Alt+F11 no Word. - Localize o módulo com o erro
No Explorador de Projetos (Ctrl+R), encontre o módulo que contém o erro. Ele estará sob Normal ou Projeto dependendo de onde a macro está armazenada. - Exporte o módulo
Clique com o botão direito no nome do módulo e escolha Exportar Arquivo. Salve-o como um arquivo .bas na sua área de trabalho. - Remova o módulo corrompido
Clique com o botão direito no mesmo módulo e escolha Remover NomeDoMódulo. Confirme a remoção. Não salve as alterações na exportação quando solicitado. - Crie um novo módulo
Clique em Inserir na barra de menus e escolha Módulo. - Importe o arquivo salvo
Clique com o botão direito no novo módulo e escolha Importar Arquivo. Selecione o arquivo .bas que você salvou anteriormente. - Compile o projeto
Clique em Depurar e depois em Compilar VBAProject. Se o erro desaparecer, a corrupção estava no armazenamento do módulo. Se o erro persistir, o código em si contém o problema e você precisa corrigi-lo manualmente conforme descrito na seção anterior.
Se o erro persistir após corrigir referências e código
Erro de compilação VBA do Word aparece em um documento diferente
Se o erro ocorrer apenas em um documento específico, o projeto VBA do documento pode estar corrompido. Abra o Word, crie um documento em branco e tente executar a mesma macro do modelo Normal. Se funcionar, o problema está no próprio documento. Recrie a macro no novo documento copiando o código corrigido do arquivo .bas que você exportou anteriormente.
Editor VBA mostra ‘Compile Error’ ao abrir o Word
Isso geralmente significa que o modelo Normal.dotm tem uma referência quebrada ou código corrompido. Feche o Word, renomeie Normal.dotm para Normal.old e reinicie o Word. O Word cria um novo Normal.dotm. Em seguida, reimporte suas macros do arquivo .bas. Isso limpa toda a corrupção no nível do modelo sem afetar outros suplementos.
Erro ocorre apenas após instalar uma atualização do Office
Uma atualização do Office pode alterar a versão da biblioteca de objetos do Word. Abra o Editor VBA, vá em Ferramentas > Referências e verifique se Microsoft Word 16.0 Object Library está marcada. Se a referência apontar para uma versão mais antiga (como 15.0), desmarque-a e marque a versão correta. Recompile o projeto.
Erro de compilação do Editor VBA vs Erro de tempo de execução: Principais diferenças
| Item | Erro de Compilação | Erro de Tempo de Execução |
|---|---|---|
| Quando aparece | Ao compilar ou executar a macro | Durante a execução da macro |
| Mensagem de erro | Method or Data Member Not Found | Erro de tempo de execução ‘####’ com descrição específica |
| Código destacado | Sim, a linha com o erro é destacada em amarelo | Sim, a linha que causou o erro é destacada |
| Causa raiz | Referência ausente, erro de digitação ou membro de objeto errado | Operação inválida, divisão por zero, objeto não definido |
| Método de correção | Verificar referências, corrigir código ou exportar/importar módulos | Adicionar tratamento de erros, validar estados de objetos ou verificar valores de dados |
Entender essa diferença ajuda você a escolher a correção correta. Um erro de compilação sempre requer uma alteração no código ou na referência. Um erro de tempo de execução pode ser corrigido adicionando tratamento de erros ou verificando estados de objetos antes de usá-los.
Agora você pode resolver o erro de compilação ‘Method or Data Member Not Found’ verificando referências, corrigindo erros de digitação e recompilando seu projeto. Em seguida, execute a macro novamente para confirmar que funciona. Para prevenção futura, sempre compile seu projeto VBA com Depurar > Compilar VBAProject após fazer alterações. Uma dica avançada útil é ativar Ferramentas > Opções > Editor > Verificação Automática de Sintaxe para que o Word sinalize erros enquanto você digita, reduzindo a chance de erros de compilação.