Você quer que uma macro VBA seja executada toda vez que o Word for aberto, sem precisar acioná-la manualmente. O Word não possui uma configuração nativa para executar macros na inicialização, mas oferece um gatilho baseado em eventos chamado AutoExec. Este artigo explica como usar a macro AutoExec para automatizar tarefas como aplicar um modelo personalizado, limpar a área de transferência ou redefinir a formatação padrão ao iniciar o Word.
Principais conclusões: como acionar uma macro VBA na inicialização do Word
- Macro AutoExec no Normal.dotm: Coloque uma macro chamada AutoExec no modelo Normal.dotm para que ela seja executada toda vez que o Word abrir.
- Editor do Visual Basic (Alt+F11): Abra o editor VBA para criar e editar o código da macro AutoExec.
- Central de Confiabilidade > Configurações de Macro > Habilitar todas as macros: Necessário para permitir que a macro AutoExec seja executada sem aviso de segurança.
O que é a macro AutoExec no VBA do Word
A macro AutoExec é uma sub-rotina especial que o Word executa automaticamente quando o aplicativo é iniciado. Ela deve ser armazenada no modelo global Normal.dotm. Diferente de outras macros que são executadas ao abrir um documento (AutoOpen) ou fechá-lo (AutoClose), a AutoExec é acionada exatamente uma vez por sessão do Word, antes que qualquer documento seja carregado. Isso a torna ideal para tarefas que afetam todo o ambiente do Word, como definir fontes padrão, habilitar uma exibição específica ou carregar um suplemento.
Para usar a AutoExec, você precisa de conhecimento básico em VBA. O código da macro é escrito no Editor do Visual Basic. Você também deve ajustar as configurações de segurança de macro do Word para permitir a execução. Por padrão, o Word desabilita todas as macros com notificação. A macro AutoExec não será executada a menos que você altere essa configuração para “Habilitar todas as macros” ou assine digitalmente o projeto de macro.
Pré-requisitos para criar uma macro AutoExec
Antes de escrever a macro, verifique o seguinte:
- Você tem acesso à guia Desenvolvedor no Word. Caso contrário, habilite-a em Arquivo > Opções > Personalizar Faixa de Opções e marque Desenvolvedor.
- Você entende o código VBA que deseja executar. Teste a macro manualmente antes de configurá-la para execução automática.
- Você está preparado para alterar as configurações de segurança de macro, o que pode expor o Word a macros maliciosas se você abrir documentos não confiáveis.
Passos para criar e executar uma macro AutoExec
Siga estas etapas para adicionar uma macro AutoExec ao modelo Normal.dotm e configurar o Word para executá-la na inicialização.
Passo 1: Abrir o Editor do Visual Basic
- Abra o Word
Certifique-se de que nenhum documento que você não queira modificar esteja aberto. A macro AutoExec será armazenada no modelo global. - Pressione Alt+F11
Isso abre o editor do Visual Basic for Applications. Você também pode clicar em Desenvolvedor > Visual Basic.
Passo 2: Inserir a macro AutoExec no Normal.dotm
- Localize Normal.dotm no Gerenciador de Projetos
No editor VBA, procure o painel Projeto à esquerda. Expanda “Normal” se ainda não estiver expandido. - Clique com o botão direito em Normal e insira um módulo
Clique com o botão direito em Normal, selecione Inserir e depois Módulo. Uma nova janela de código será aberta. - Escreva a macro AutoExec
Na janela de código, digite a seguinte estrutura:Sub AutoExec()
' Seu código aqui
MsgBox "O Word foi iniciado"
End Sub
Substitua a linha MsgBox pelo seu código VBA real. O nome da macro deve ser exatamenteAutoExec(difere maiúsculas de minúsculas). - Salve a macro
Pressione Ctrl+S para salvar o modelo Normal.dotm. Se solicitado, confirme as alterações no modelo global.
Passo 3: Ajustar a segurança de macro para permitir a execução
- Abra a Central de Confiabilidade
Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade. - Selecione Configurações de Macro
Clique em Configurações de Macro no painel esquerdo. - Escolha Habilitar todas as macros
Selecione “Habilitar todas as macros (não recomendado; códigos potencialmente perigosos podem ser executados)”. - Marque acesso ao modelo de objeto do projeto VBA
Se sua macro interagir com o modelo de objeto VBA, marque também “Confiar acesso ao modelo de objeto do projeto VBA”. - Clique em OK
Feche todas as caixas de diálogo. Reinicie o Word para testar a macro.
Passo 4: Testar a macro AutoExec
- Feche o Word completamente
Certifique-se de que nenhum processo do Word esteja sendo executado em segundo plano. - Abra o Word
Se você usou o exemplo MsgBox, uma caixa de mensagem deve aparecer imediatamente após o Word abrir. Se nada acontecer, revise o nome da macro e as configurações de segurança.
Problemas comuns quando o AutoExec não é executado
A macro AutoExec não está no Normal.dotm
A macro AutoExec deve residir no modelo Normal.dotm. Se você a colocou em um modelo ou documento diferente, ela não será executada. Abra o editor VBA e confirme se a macro está em Normal > Módulos, e não em um projeto com o nome de um documento específico.
A segurança de macro bloqueia a execução
Se a configuração de macro for “Desabilitar todas as macros com notificação”, o Word não executará a macro AutoExec. Altere a configuração para “Habilitar todas as macros” conforme descrito no Passo 3. Para ambientes de produção, considere assinar digitalmente o projeto de macro em vez de reduzir a segurança.
O Word é iniciado a partir de um atalho de documento
Se o Word for iniciado ao clicar duas vezes em um arquivo de documento, a macro AutoExec ainda será executada. No entanto, se o documento contiver uma macro AutoOpen, essa macro será executada após a AutoExec. A ordem é sempre AutoExec primeiro, depois AutoOpen. Se sua AutoExec depender de um documento em branco, ela pode se comportar de forma diferente quando um documento específico for aberto.
A macro contém erros que impedem a execução
Um erro de sintaxe ou tempo de execução na macro AutoExec impedirá sua execução. Teste a macro manualmente pressionando F5 no editor VBA antes de confiar no comportamento automático. Se ocorrer um erro na inicialização, o Word pode exibir um prompt de depuração ou pular a macro silenciosamente.
AutoExec vs AutoOpen: principais diferenças
| Item | AutoExec | AutoOpen |
|---|---|---|
| Evento de gatilho | Inicialização do aplicativo Word | Abertura de um documento específico |
| Local de armazenamento | Modelo global Normal.dotm | Qualquer documento ou modelo |
| Quando é executada | Uma vez por sessão do Word, antes de carregar qualquer documento | Toda vez que um documento contendo a macro é aberto |
| Caso de uso | Configurações globais do ambiente (fonte padrão, carregamento de suplementos) | Ações específicas do documento (formatação, limpeza) |
| Exigência de segurança | Macros devem estar habilitadas globalmente | Macros devem estar habilitadas para o documento |
Agora você pode configurar uma macro AutoExec para automatizar qualquer tarefa repetitiva ao iniciar o Word. Como próximo passo, explore a macro AutoNew, que é executada ao criar um novo documento a partir de um modelo. Uma dica avançada: use o método Application.OnTime dentro da AutoExec para agendar uma macro para ser executada alguns segundos após a inicialização, evitando interferir na sequência de carregamento inicial do Word.