Você precisa adicionar um rodapé a um documento do Word sem abrir manualmente a área de cabeçalho e rodapé toda vez. Macros VBA permitem inserir, formatar e atualizar rodapés programaticamente, economizando tempo ao trabalhar com muitos documentos ou modelos. Este artigo explica como escrever e executar uma macro VBA que insere um rodapé com texto, números de página ou outros campos. Você aprenderá os objetos e métodos essenciais do VBA para manipulação de rodapés.
Principais Conclusões: Inserção de Rodapé com VBA no Word
- ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text: Define o texto do rodapé principal na primeira seção.
- wdHeaderFooterPrimary / wdHeaderFooterEvenPages / wdHeaderFooterFirstPage: Constantes que direcionam diferentes tipos de rodapé em uma seção.
- Método Fields.Add com wdFieldPage: Insere um campo de número de página dentro do intervalo do rodapé.
Entendendo o Modelo de Objeto de Rodapé do VBA
O Word armazena rodapés dentro de cada objeto Section. Um documento pode ter várias seções, cada uma com até três tipos de rodapé: principal (páginas ímpares), páginas pares e primeira página. A coleção Footers de um objeto Section contém esses intervalos de rodapé. Para inserir conteúdo, você acessa a propriedade Range da constante de rodapé específica. As três constantes são wdHeaderFooterPrimary, wdHeaderFooterEvenPages e wdHeaderFooterFirstPage. Por padrão, um novo documento tem uma seção com um rodapé principal. Você também deve garantir que a área do rodapé não esteja vinculada à seção anterior se trabalhar com várias seções, embora para um documento de seção única isso não seja necessário.
Pré-requisitos para Executar Macros VBA
Antes de escrever uma macro, habilite a guia Desenvolvedor no Word. Vá em Arquivo > Opções > Personalizar Faixa de Opções e marque a caixa Desenvolvedor no painel direito. Você também precisa salvar seu documento como um arquivo habilitado para macro (.docm). Macros não podem ser executadas no formato .docx padrão. Se você planeja reutilizar a macro em vários documentos, armazene-a no modelo Normal.dotm.
Passos para Inserir um Rodapé Usando VBA
Siga estes passos para criar uma macro que insere um rodapé com texto personalizado e um número de página.
- Abra o Editor VBA
Pressione Alt+F11 no Word para abrir o editor do Visual Basic for Applications. Como alternativa, clique em Desenvolvedor > Visual Basic. - Insira um novo módulo
No painel do Gerenciador de Projetos, clique com o botão direito em Normal ou no nome do seu projeto e escolha Inserir > Módulo. Uma janela de código em branco aparece. - Escreva a macro de inserção de rodapé
Cole ou digite o seguinte código no módulo:Sub InserirRodape()
Dim sec As Section
Set sec = ActiveDocument.Sections(1)
With sec.Footers(wdHeaderFooterPrimary).Range
.Text = "Página "
.Fields.Add Range:=.Characters(.Characters.Count), Type:=wdFieldPage
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
End Sub
Esta macro define o rodapé principal para a palavra “Página” seguida por um campo de número de página automático, centralizado. - Execute a macro
Coloque o cursor em qualquer lugar dentro do procedimentoInserirRodapee pressione F5. Ou feche o editor e vá em Desenvolvedor > Macros, selecione InserirRodape e clique em Executar. - Verifique o rodapé
Abra a área do rodapé clicando duas vezes na margem inferior de qualquer página. Você deve ver “Página 1” centralizado. O número da página é atualizado automaticamente conforme você adiciona páginas.
Inserindo um Rodapé com Múltiplas Linhas
Para inserir um rodapé com várias linhas, use a constante vbCrLf para adicionar uma quebra de linha. Por exemplo:
- Modifique a atribuição Range.Text
Altere a linha.Text = "Página "para.Text = "Confidencial da Empresa" & vbCrLf & "Página ". Isso insere duas linhas com uma quebra de linha entre elas. - Adicione o campo de número de página após a segunda linha
O código de inserção do campo permanece o mesmo:.Fields.Add Range:=.Characters(.Characters.Count), Type:=wdFieldPage. O campo é colocado no final do intervalo do rodapé.
Direcionando Páginas Pares ou a Primeira Página
Documentos com cabeçalhos e rodapés diferentes para páginas pares ou primeira página exigem que você defina as constantes correspondentes. Ative essas opções primeiro no Word: Layout > Configurar Página > Guia Layout > marque “Diferentes em páginas pares e ímpares” ou “Diferente na primeira página”. Em seguida, use estas constantes em sua macro:
- Rodapé de páginas pares
Usesec.Footers(wdHeaderFooterEvenPages).Rangepara inserir conteúdo que aparece apenas em páginas pares. - Rodapé da primeira página
Usesec.Footers(wdHeaderFooterFirstPage).Rangepara o rodapé apenas na primeira página. Isso substitui o rodapé principal nessa página.
Problemas Comuns ao Inserir Rodapés com VBA
“A macro não pode ser executada porque as macros estão desabilitadas”
O Word bloqueia macros por padrão por segurança. Salve o documento como um arquivo .docm e habilite macros quando solicitado. Se o documento já estiver aberto, vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione “Habilitar todas as macros” para teste. Reverta para uma configuração mais segura após o teste.
O texto do rodapé aparece, mas o campo de número de página mostra “!Fim de Fórmula Inesperado”
Esse erro ocorre quando o ponto de inserção do campo está fora do intervalo do rodapé. Certifique-se de inserir o campo após definir o texto e que o intervalo aponte para a posição do último caractere. Use .Characters(.Characters.Count) para direcionar o final exato do intervalo.
O conteúdo do rodapé duplica entre seções
Quando um documento tem várias seções, o rodapé de uma seção pode estar vinculado à seção anterior. Para quebrar o vínculo, defina sec.Footers(wdHeaderFooterPrimary).LinkToPrevious = False antes de modificar o rodapé. Faça isso para cada seção que você deseja personalizar independentemente.
Inserção de Rodapé com VBA: Principal vs. Pares vs. Primeira Página
| Item | Principal (wdHeaderFooterPrimary) | Páginas Pares (wdHeaderFooterEvenPages) | Primeira Página (wdHeaderFooterFirstPage) |
|---|---|---|---|
| Descrição | Rodapé padrão para páginas ímpares | Rodapé para páginas pares | Rodapé apenas na primeira página |
| Requer configuração no Word | Nenhuma | Layout > Diferentes em páginas pares e ímpares | Layout > Diferente na primeira página |
| Uso típico | Números de página em todas as páginas | Título do documento em páginas pares | Aviso apenas na primeira página |
| Valor da constante VBA | -1 | -3 | -2 |
Entender esses três tipos de rodapé permite criar macros que atendem aos requisitos de layout do seu documento. As constantes VBA são numéricas, mas você deve sempre usar as constantes nomeadas para legibilidade.
Agora você pode inserir rodapés em documentos do Word usando macros VBA com texto personalizado, números de página e quebras de linha. Tente combinar o método Fields.Add com campos de data ou caminho de arquivo para rodapés mais dinâmicos. Para automação avançada, percorra todas as seções de um documento e aplique um rodapé consistente a cada uma.