Como Usar VBA para Atualizar Todos os Campos no Word
🔍 WiseChecker

Como Usar VBA para Atualizar Todos os Campos no Word

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

ADVERTISEMENT

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:

  1. Abra Opções do Word
    Clique em Arquivo > Opções.
  2. Personalize a Faixa de Opções
    Na caixa de diálogo Opções do Word, selecione Personalizar Faixa de Opções à esquerda.
  3. 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

  1. Pressione Alt + F11
    A janela do editor VBA é aberta. Ela mostra um explorador de projetos à esquerda e um painel de código à direita.
  2. 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

  1. 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
  2. Cole no módulo
    Clique dentro do painel de código em branco e pressione Ctrl + V para colar o código.
  3. 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

  1. Clique em Arquivo > Salvar Como
    Escolha um local e insira um nome de arquivo.
  2. 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

  1. Pressione Alt + F8
    A caixa de diálogo Macro é aberta, listando todas as macros disponíveis.
  2. Selecione UpdateAllFields
    Clique na macro chamada UpdateAllFields e depois clique em Executar. Uma caixa de mensagem confirma que todos os campos foram atualizados.

ADVERTISEMENT

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.

ADVERTISEMENT