Como Agendar uma Macro VBA do Word para Executar Automaticamente ao Abrir o Documento
🔍 WiseChecker

Como Agendar uma Macro VBA do Word para Executar Automaticamente ao Abrir o Documento

Você quer que uma macro VBA específica seja executada no momento em que abre um documento do Word. Isso economiza tempo automatizando tarefas repetitivas, como aplicar formatação, atualizar cabeçalhos ou atualizar campos de dados. O Word oferece dois gatilhos de evento integrados: o evento Document_Open e a macro AutoOpen, que executam código automaticamente quando o documento é carregado. Este artigo explica como configurar cada método, onde colocar o código e como evitar os bloqueios de segurança comuns que impedem a execução de macros.

Principais Conclusões: Automatizando a Execução de Macros ao Abrir o Documento

  • Módulo ThisDocument no editor VBA: Contém o evento Document_Open que é acionado automaticamente quando o documento é aberto.
  • Macro AutoOpen em um módulo padrão ou ThisDocument: Um método legado que também executa código quando o documento carrega, mas apenas em arquivos .doc ou .docm.
  • Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro: Habilite todas as macros ou assine digitalmente sua macro para contornar o bloqueio de segurança padrão.

ADVERTISEMENT

Como o Word Aciona Macros ao Abrir o Documento

O Word oferece dois mecanismos distintos para executar código automaticamente quando um documento é aberto. O primeiro é o evento Document_Open, que faz parte do módulo de classe ThisDocument. Este evento é a abordagem moderna e recomendada, pois está explicitamente vinculado ao objeto documento e funciona de forma confiável em todos os formatos de documento habilitados para macro (.docm, .dotm).

O segundo mecanismo é a macro AutoOpen. Este é um recurso legado de versões anteriores do Word. Quando o Word abre um documento, ele verifica o projeto em busca de uma sub-rotina chamada AutoOpen e a executa. A macro AutoOpen pode residir em um módulo padrão ou no módulo ThisDocument. Ambos os métodos alcançam o mesmo resultado, mas o Document_Open oferece mais controle e é menos propenso a conflitos com outros complementos.

Antes de escrever qualquer código, certifique-se de que seu documento esteja salvo como um arquivo habilitado para macro. Use a extensão .docm para documentos e .dotm para modelos. Se você salvar como .docx, o Word remove todo o código VBA e a macro não será executada. Além disso, você deve ajustar as configurações de segurança de macro do Word para permitir a execução de macros. Por padrão, o Word desabilita todas as macros sem notificação. Você deve habilitar todas as macros, o que é arriscado, ou assinar digitalmente seu projeto de macro com um certificado autoassinado ou confiável.

Passos para Adicionar um Evento Document_Open para Executar uma Macro Automaticamente

O evento Document_Open é o método mais confiável para acionar código quando o documento abre. Siga estes passos para adicionar o manipulador de eventos e sua macro personalizada.

  1. Abra o editor VBA
    Pressione Alt+F11 no Word. O editor Visual Basic for Applications é aberto. No painel Explorador de Projetos à esquerda, localize o projeto do seu documento. Ele será listado como Normal (para o modelo global), Project (Document1) ou o nome do seu documento salvo.
  2. Clique duas vezes em ThisDocument
    No Explorador de Projetos, expanda a pasta Microsoft Word Objects sob o projeto do seu documento. Clique duas vezes na entrada ThisDocument. A janela de código do módulo ThisDocument é aberta.
  3. Selecione o evento Document no menu suspenso
    Na parte superior da janela de código, clique no menu suspenso esquerdo e selecione Document. O menu suspenso direito mostra automaticamente (Declarações). Após selecionar Document, o menu suspenso direito agora lista todos os eventos de documento disponíveis. Clique no menu suspenso direito e selecione Open. O editor VBA cria um procedimento esboço: Private Sub Document_Open() com uma linha End Sub.
  4. Escreva o código da sua macro dentro do evento
    Entre Private Sub Document_Open() e End Sub, digite o código que deseja executar. Por exemplo, para exibir uma caixa de mensagem, digite: MsgBox “Documento aberto com sucesso.” Você também pode chamar outra macro digitando Call MinhaMacro.
  5. Salve o documento como um arquivo habilitado para macro
    Pressione Ctrl+S. Na caixa de diálogo Salvar Como, defina o tipo de arquivo como Documento Habilitado para Macro do Word (.docm). Escolha um local e clique em Salvar. Se você vir um aviso sobre macros desabilitadas, clique em OK e prossiga para ajustar as configurações de segurança.
  6. Habilite macros na Central de Confiabilidade
    Vá para Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Selecione Habilitar todas as macros. Para evitar habilitar todas as macros permanentemente, selecione Desabilitar todas as macros, exceto as assinadas digitalmente e assine seu projeto. Clique em OK duas vezes para fechar as caixas de diálogo.
  7. Teste a macro
    Feche o documento. Reabra-o. A macro deve ser executada automaticamente. Se nada acontecer, verifique novamente as configurações de segurança e confirme se a extensão do arquivo é .docm.

ADVERTISEMENT

Passos para Criar uma Macro AutoOpen como Alternativa

O método AutoOpen é mais simples, mas menos flexível que o evento Document_Open. Use esta abordagem se estiver trabalhando com documentos legados ou preferir a sintaxe mais antiga.

  1. Abra o editor VBA
    Pressione Alt+F11 para abrir o editor VBA.
  2. Insira um novo módulo padrão
    No Explorador de Projetos, clique com o botão direito no projeto do seu documento e escolha Inserir > Módulo. Um novo módulo chamado Module1 aparece na pasta Módulos.
  3. Escreva a sub-rotina AutoOpen
    Na janela de código do Module1, digite:
    Sub AutoOpen()
        MsgBox "O documento foi aberto."
    End Sub

    Você pode substituir a linha MsgBox por qualquer código necessário.

  4. Salve o documento como .docm
    Pressione Ctrl+S e selecione Documento Habilitado para Macro do Word (.docm) como tipo de arquivo.
  5. Habilite macros e teste
    Siga os passos 6 e 7 da seção anterior para habilitar macros e testar o documento.

Problemas Comuns Quando as Macros Não São Executadas na Abertura

Segurança de macro bloqueia a execução do código

O Word bloqueia macros por padrão. Mesmo que você tenha escrito o código corretamente, a macro não será executada a menos que você habilite as macros. Vá para Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione Habilitar todas as macros para teste. Para produção, assine a macro com um certificado digital e use Desabilitar todas as macros, exceto as assinadas digitalmente.

O documento está salvo como .docx em vez de .docm

Se você salvar o arquivo acidentalmente como um Documento do Word padrão (.docx), o Word remove todo o código VBA sem aviso. Verifique a extensão do arquivo no Explorador de Arquivos. Se terminar em .docx, renomeie para .docm ou abra o arquivo, pressione Alt+F11 e adicione o código novamente, depois salve como .docm.

A macro AutoOpen está dentro do módulo errado

AutoOpen deve ser uma Sub Pública em um módulo padrão ou no módulo ThisDocument. Se você colocá-la dentro de um módulo de classe ou um formulário de usuário, o Word não a encontrará. Mova a sub-rotina para um módulo padrão ou ThisDocument.

O evento Document_Open está com erro de ortografia ou parâmetros incorretos

O nome do evento deve ser exatamente Document_Open. Qualquer variação, como DocumentOpen ou Doc_Open, não será acionada. Exclua o procedimento com nome incorreto e use o método de menu suspenso descrito anteriormente para inserir o esboço correto.

ADVERTISEMENT

Document_Open vs AutoOpen: Principais Diferenças

Item Evento Document_Open Macro AutoOpen
Localização Apenas no módulo de classe ThisDocument Módulo padrão ou ThisDocument
Gatilho Acionado quando o objeto documento é carregado Acionado quando o Word abre o arquivo
Escopo Específico ao projeto do documento Executa em qualquer documento que a contenha
Compatibilidade Funciona em .docm e .dotm Funciona em .doc, .docm e .dotm
Suporte a parâmetros Nenhum parâmetro permitido Nenhum parâmetro permitido
Melhor prática Recomendado para novos projetos Legado, evite para novos trabalhos

Agora você pode agendar qualquer macro VBA para ser executada automaticamente quando um documento do Word for aberto, usando o evento Document_Open ou a macro AutoOpen. Comece escrevendo o código da sua macro no módulo ThisDocument ou em um módulo padrão. Sempre salve o arquivo como um arquivo .docm habilitado para macro e ajuste as configurações da Central de Confiabilidade para permitir a execução de macros. Para automação avançada, considere adicionar tratamento de erros dentro do evento Document_Open para registrar falhas ou exibir prompts ao usuário sem travar o Word.

ADVERTISEMENT