Atualizar manualmente cada campo em um documento longo do Word—como entradas de sumário, referências cruzadas, números de página e índices—pode levar minutos e é fácil de esquecer. Os comandos internos de atualização de campo do Word funcionam apenas na seleção atual ou no documento inteiro ao imprimir ou fechar o arquivo. Este artigo explica como escrever e executar uma macro VBA simples que atualiza todos os campos no documento ativo com um único clique, economizando tempo e evitando referências desatualizadas.
Principais Conclusões: Automatizando a Atualização de Campos com uma Macro VBA
- Alt + F11: Abre o editor VBA onde você cola o código da macro
- Método Fields.Update: O comando único que atualiza todos os campos do documento
- Alt + F8: Abre a caixa de diálogo Macro para executar sua macro personalizada
O que uma Macro VBA de Atualização de Campos Faz e o que Você Precisa Antes de Usá-la
Uma macro VBA é um pequeno programa que automatiza tarefas repetitivas dentro do Word. A macro para atualizar todos os campos usa o método Fields.Update, que percorre cada campo no documento ativo e força o recálculo do seu valor. Isso inclui campos de sumário, referências cruzadas, números de página, índices, fórmulas e propriedades personalizadas do documento.
Antes de usar a macro, você precisa habilitar a guia Desenvolvedor no Word. Essa guia fornece acesso ao editor VBA e às ferramentas de macro. Você também precisa salvar o documento em um formato que suporte macros—a extensão .docm (documento habilitado para macro) ou .dotm (modelo habilitado para macro). Arquivos .docx padrão não podem armazenar código VBA.
A macro funciona no documento inteiro, incluindo cabeçalhos, rodapés, notas de rodapé, notas de fim e caixas de texto. Ela não requer experiência em programação, pois você só precisa copiar, colar e executar o código fornecido neste artigo.
Habilitar a Guia Desenvolvedor
Se a guia Desenvolvedor não estiver visível na faixa de opções, siga estas etapas:
- Abra Opções do Word
Clique em Arquivo > Opções. - Personalize a Faixa de Opções
Na caixa de diálogo Opções do Word, selecione Personalizar Faixa de Opções à esquerda. - Marque Desenvolvedor
Em Guias Principais à direita, marque a caixa ao lado de Desenvolvedor. Clique em OK.
Como Escrever e Executar a Macro VBA para Atualizar Todos os Campos
Siga estas etapas para inserir a macro no seu documento e executá-la. Você só precisa fazer isso uma vez por documento. Depois, pode executar a macro sempre que precisar atualizar todos os campos.
Passo 1: Abrir o Editor VBA
- Pressione Alt + F11
A janela do editor VBA é aberta. Ela mostra um explorador de projetos à esquerda e um painel de código à direita. - Insira um novo módulo
Na barra de menu, clique em Inserir > Módulo. Um novo módulo aparece sob o projeto Normal ou sob o projeto do seu documento.
Passo 2: Colar o Código da Macro
- Copie o código abaixo
Selecione e copie o seguinte código VBA:Sub UpdateAllFields() Dim fld As Field For Each fld In ActiveDocument.Fields fld.Update Next fld MsgBox "Todos os campos foram atualizados.", vbInformation, "Atualização de Campos Concluída" End Sub - Cole no módulo
Clique dentro do painel de código em branco e pressione Ctrl + V para colar o código. - Feche o editor VBA
Clique no X no canto superior direito da janela do editor VBA para retornar ao Word.
Passo 3: Salvar o Documento como Habilitado para Macro
- Clique em Arquivo > Salvar Como
Escolha um local e insira um nome de arquivo. - Selecione o formato correto
Na lista suspensa Salvar como tipo, escolha Documento Habilitado para Macro do Word (docm). Clique em Salvar.
Passo 4: Executar a Macro
- Pressione Alt + F8
A caixa de diálogo Macro é aberta, listando todas as macros disponíveis. - Selecione UpdateAllFields
Clique na macro chamada UpdateAllFields e depois clique em Executar. Uma caixa de mensagem confirma que todos os campos foram atualizados.
Erros Comuns e Limitações ao Usar a Macro de Atualização de Campos
Mesmo uma macro simples pode causar confusão se você não estiver ciente de seu comportamento e restrições. Os problemas a seguir são os mais frequentes entre usuários corporativos.
A Macro Não Aparece na Lista de Macros
Se você não conseguir ver UpdateAllFields ao pressionar Alt + F8, a macro foi colada no local errado. Abra o editor VBA novamente (Alt + F11) e confirme que o código está dentro de um módulo sob o projeto Normal ou sob o projeto do seu documento. Uma macro colocada dentro de um evento de documento ou módulo de classe não aparecerá na caixa de diálogo Macro. Clique com o botão direito no módulo no Explorador de Projetos e selecione Remover para excluí-lo, depois reinsira um módulo padrão e cole o código novamente.
O Documento Foi Salvo como .docx e a Macro Foi Perdida
Ao fechar um arquivo .docx que contém uma macro, o Word remove silenciosamente o código VBA. Sempre salve o arquivo como .docm após adicionar a macro. Se você salvou acidentalmente como .docx, cole novamente o código da macro e salve usando o formato correto. Para verificar o formato atual, observe a extensão do arquivo no Windows File Explorer ou clique em Arquivo > Informações e inspecione o tipo de arquivo listado em Propriedades.
A Macro Atualiza Campos, Mas Quebra os Números de Página do Sumário
A macro atualiza cada campo exatamente uma vez. Para um sumário (TOC), uma única atualização pode não recalcular os números de página se o campo TOC exigir duas passagens. Para corrigir isso, execute a macro duas vezes seguidas. Alternativamente, clique com o botão direito no sumário e selecione Atualizar Campo, depois escolha Atualizar apenas números de página ou Atualizar tabela inteira. Para atualizações automatizadas de duas passagens, modifique a macro para chamar ActiveDocument.TablesOfContents(1).Update dentro de um loop.
A Macro Para ou Retorna um Erro em Documentos Protegidos
Se o documento tiver restrições de edição ou estiver marcado como final, a macro não pode modificar campos. Clique em Revisão > Restringir Edição e interrompa a proteção. Se o documento estiver marcado como final, clique na barra Marcado como Final na parte superior e selecione Editar Mesmo Assim. Após remover as restrições, execute a macro novamente.
Documento Habilitado para Macro vs Documento Padrão: Comportamento de Atualização de Campos
| Item | .docm (Habilitado para Macro) | .docx (Padrão) |
|---|---|---|
| Armazenamento de macro VBA | Armazena macros dentro do arquivo | Não pode armazenar macros |
| Método de atualização de campos | Executar macro VBA personalizada para atualizar todos os campos | Deve usar Ctrl + A e depois F9, ou confiar na Visualização de Impressão |
| Aviso de segurança ao abrir | Pode mostrar um aviso de segurança; o usuário deve habilitar macros | Nenhum aviso de macro |
| Compartilhamento de arquivos | Alguns servidores de e-mail bloqueiam anexos .docm | Amplamente aceito por filtros de e-mail |
| Velocidade de atualização em lote | Macro com um clique atualiza centenas de campos em segundos | Seleção manual e F9 podem levar vários minutos para documentos grandes |
Agora você pode atualizar todos os campos em um documento do Word pressionando Alt + F8 e selecionando a macro UpdateAllFields. Armazene a macro em seu modelo Normal.dotm para que esteja disponível em todos os documentos futuros. Para documentos que exigem atualizações frequentes de campos, considere atribuir a macro a um atalho de teclado personalizado via Arquivo > Opções > Personalizar Faixa de Opções > Atalhos de Teclado > Macros.