Como Executar uma Macro VBA Automaticamente ao Abrir o Word
🔍 WiseChecker

Como Executar uma Macro VBA Automaticamente ao Abrir o Word

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.

ADVERTISEMENT

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

  1. 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.
  2. 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

  1. Localize Normal.dotm no Gerenciador de Projetos
    No editor VBA, procure o painel Projeto à esquerda. Expanda “Normal” se ainda não estiver expandido.
  2. 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.
  3. 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 exatamente AutoExec (difere maiúsculas de minúsculas).
  4. 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

  1. Abra a Central de Confiabilidade
    Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade.
  2. Selecione Configurações de Macro
    Clique em Configurações de Macro no painel esquerdo.
  3. Escolha Habilitar todas as macros
    Selecione “Habilitar todas as macros (não recomendado; códigos potencialmente perigosos podem ser executados)”.
  4. 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”.
  5. Clique em OK
    Feche todas as caixas de diálogo. Reinicie o Word para testar a macro.

Passo 4: Testar a macro AutoExec

  1. Feche o Word completamente
    Certifique-se de que nenhum processo do Word esteja sendo executado em segundo plano.
  2. 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.

ADVERTISEMENT

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.

ADVERTISEMENT