Você escreveu uma macro VBA no Word que automatiza uma tarefa repetitiva, mas precisa que ela seja executada apenas quando um documento específico estiver aberto. Por padrão, o Word armazena macros no modelo Normal.dotm, tornando-as disponíveis para todos os documentos. Este artigo explica como salvar uma macro diretamente em um único documento para que ela não afete outros arquivos.
A solução é armazenar a macro no próprio documento, em vez de em um modelo global. O Word oferece dois locais de armazenamento para macros: o corpo do documento e o modelo global. Quando você salva uma macro dentro de um documento, essa macro viaja com o arquivo e é executada apenas quando esse documento está ativo. Essa abordagem é ideal para automações específicas de fluxo de trabalho que não devem poluir o ambiente global.
Este artigo aborda as etapas exatas para criar uma macro em um documento, como verificar se ela foi armazenada corretamente e o que fazer se a macro não aparecer ao reabrir o arquivo. Você também aprenderá as diferenças entre macros de nível de documento e globais para escolher a abordagem certa para cada projeto.
Principais Conclusões: Salvar uma Macro em um Único Documento do Word
- Guia Desenvolvedor > Código > Macros > Nome da macro > Armazenar macro em > Nome do documento: A única maneira correta de atribuir uma macro a um documento específico em vez do modelo global Normal.dotm.
- Arquivo > Salvar como > Documento Habilitado para Macro do Word (docm): O formato de arquivo obrigatório para qualquer documento que contenha macros. Um arquivo .docx comum descartará o código da macro ao ser salvo.
- Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro > Habilitar todas as macros: Configuração de segurança necessária para permitir a execução de macros no documento. Sem isso, a macro não será executada.
Entendendo os Locais de Armazenamento de Macros no Word
O Word armazena macros VBA em um de dois lugares. O local padrão é o modelo global Normal.dotm. Qualquer macro salva lá fica disponível para todos os documentos que você abrir. O segundo local é o próprio documento. Uma macro armazenada em um documento é chamada de macro de nível de documento. Ela está incorporada no arquivo e é executada apenas quando esse documento específico está ativo.
O requisito principal para macros de nível de documento é a extensão do arquivo. Um documento padrão do Word usa a extensão .docx. Esse formato não pode conter código VBA. Você deve salvar o arquivo como um Documento Habilitado para Macro do Word com a extensão .docm. Se você salvar um arquivo .docm como .docx, o Word remove todas as macros silenciosamente. A macro é perdida permanentemente, a menos que você tenha uma cópia de backup.
Outro fator importante é a configuração de segurança da Central de Confiabilidade. Por padrão, o Word desabilita todas as macros com notificação. Você deve alterar essa configuração para permitir a execução de macros. Essa configuração se aplica a todos os documentos, não apenas ao que contém sua macro. Você pode ajustá-la temporariamente e reverter após os testes.
Passos para Salvar uma Macro em um Documento Específico
Siga estas etapas para criar uma nova macro e armazená-la dentro de um único documento. O procedimento pressupõe que você já abriu o documento de destino no Word.
- Habilitar a guia Desenvolvedor
Vá em Arquivo > Opções > Personalizar Faixa de Opções. No painel direito, em Guias Principais, marque a caixa ao lado de Desenvolvedor. Clique em OK. A guia Desenvolvedor agora aparece na faixa de opções. - Abrir o Editor do Visual Basic
Na guia Desenvolvedor, clique em Visual Basic. Como alternativa, pressione Alt+F11. O editor VBA é aberto. - Inserir um módulo no projeto correto
No painel do Explorador de Projetos à esquerda, localize o projeto que corresponde ao nome do seu documento. Ele aparece como Projeto (NomeDoSeuDocumento). Clique com o botão direito nesse projeto, selecione Inserir e depois Módulo. Um novo módulo de código aparece sob o projeto. - Escrever ou colar o código da macro
Na janela do módulo, digite ou cole seu código VBA. Por exemplo:Sub MinhaMacroDoDocumento()
MsgBox "Esta macro é executada apenas neste documento."
End Sub - Salvar o documento como um arquivo habilitado para macro
Feche o editor VBA. Vá em Arquivo > Salvar como. No menu suspenso Tipo, selecione Documento Habilitado para Macro do Word (docm). Escolha uma pasta e um nome de arquivo e clique em Salvar. - Habilitar macros na Central de Confiabilidade
Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade. Selecione Configurações de Macro. Escolha Habilitar todas as macros. Clique em OK duas vezes. - Testar a macro
Pressione Alt+F8 para abrir a caixa de diálogo Macros. No menu suspenso Macros em, confirme que o nome do seu documento aparece. Selecione sua macro e clique em Executar. A macro é executada.
O Que Fazer se a Macro Não Aparecer Após Reabrir
Se você reabrir o documento mais tarde e a macro estiver ausente ou não for executada, verifique estes três fatores em ordem.
Você salvou como .docm em vez de .docx?
A causa mais comum é salvar o arquivo com a extensão .docx. O Word descarta silenciosamente todo o código VBA ao salvar como .docx. Abra o arquivo, verifique a extensão na barra de título ou no Explorador de Arquivos. Se terminar em .docx, a macro se foi. Você deve recriá-la e salvar como .docm.
A macro está armazenada no projeto correto?
Abra o editor VBA com Alt+F11. No Explorador de Projetos, procure um projeto com o nome do seu documento. Se a macro estiver dentro de Projeto (Normal) em vez disso, é uma macro global, não de nível de documento. Clique com o botão direito no módulo em Normal, escolha Remover, reinsira o módulo sob o projeto do documento correto e repita as etapas de salvamento.
As macros estão habilitadas na Central de Confiabilidade?
O Word desabilita macros por padrão ao abrir um arquivo de um local não confiável. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Se a configuração for Desabilitar todas as macros sem notificação, altere para Habilitar todas as macros. Além disso, adicione a pasta que contém seu arquivo .docm à lista de Locais Confiáveis para evitar o aviso de segurança toda vez.
Macro de Documento do Word vs Macro Global: Principais Diferenças
| Item | Macro de Nível de Documento | Macro Global (Normal.dotm) |
|---|---|---|
| Local de armazenamento | Incorporado no arquivo .docm | Modelo Normal.dotm na pasta de modelos do usuário |
| Escopo | Apenas o documento hospedeiro | Todos os documentos abertos no Word |
| Extensão de arquivo necessária | .docm | Nenhuma (Normal.dotm é sempre carregado) |
| Portabilidade | Viaja com o arquivo do documento | Fica apenas na máquina local |
| Risco de backup | Perdida se salva como .docx | Perdida se Normal.dotm for corrompido ou excluído |
| Melhor caso de uso | Automação de projeto único | Utilitários reutilizáveis em todo o trabalho |
Agora você pode salvar uma macro em um documento específico e manter seu modelo global limpo. Use a guia Desenvolvedor para inserir um módulo no projeto correto, escreva seu código e salve o arquivo como .docm. Sempre verifique a extensão do arquivo após salvar. Para segurança, habilite macros na Central de Confiabilidade ou adicione a pasta do documento aos Locais Confiáveis. Como dica avançada, você também pode exportar um módulo do editor VBA como um arquivo .bas e importá-lo para qualquer projeto de documento sem redigitar o código.