Como Usar VBA para Gerar Documento Word a Partir de um Modelo
🔍 WiseChecker

Como Usar VBA para Gerar Documento Word a Partir de um Modelo

Você quer automatizar o Word para criar novos documentos a partir de um modelo sem abrir, copiar e salvar manualmente cada vez. Macros VBA podem abrir um arquivo de modelo, adicionar conteúdo em marcadores ou controles de conteúdo específicos e salvar o resultado como um novo documento. Este artigo explica como escrever um macro VBA que gera um documento Word a partir de um modelo, incluindo como referenciar o modelo, inserir texto e lidar com caminhos de arquivo.

Principais Conclusões: Automatizando a Geração de Documentos com VBA

  • Método Documents.Open com o caminho do modelo: Abre o arquivo .dotx ou .dotm como uma nova instância de documento.
  • Objeto Bookmarks ou ContentControls: Segmenta pontos de inserção específicos no modelo para substituição dinâmica de texto.
  • Método Document.SaveAs2: Salva o documento gerado como um arquivo .docx no local escolhido.

ADVERTISEMENT

Como o VBA Interage com Modelos do Word

Um modelo do Word é um arquivo .dotx ou .dotm que contém estilos, cabeçalhos, rodapés e conteúdo de espaço reservado. Quando você abre um modelo via VBA, o Word cria um novo documento baseado nesse modelo sem alterar o arquivo original. Este é o mecanismo chave para a geração automatizada de documentos.

Os macros VBA são executados dentro do Word, então você precisa habilitar a guia Desenvolvedor para acessar o Editor do Visual Basic. O macro usa o método Documents.Open para carregar o modelo como um novo documento. Após abrir, você pode inserir texto, substituir marcadores ou preencher controles de conteúdo com dados de um banco de dados, Excel ou entrada do usuário. Finalmente, o macro chama SaveAs2 para gravar o novo arquivo em disco.

Antes de escrever o macro, crie um modelo que inclua marcadores ou controles de conteúdo em cada local onde você deseja inserir conteúdo dinâmico. Por exemplo, coloque um marcador chamado NomeCliente onde o nome do cliente deve aparecer. O macro localizará esse marcador e o substituirá pelo valor real.

Escrevendo o Macro VBA para Gerar um Documento a Partir de um Modelo

Este macro abre um modelo, preenche dois marcadores e salva o resultado como um novo documento. Você pode adaptar o código para usar controles de conteúdo ou lógica mais complexa.

  1. Abra o Editor do Visual Basic
    Pressione Alt+F11 no Word. No Gerenciador de Projetos, clique duas vezes em ThisDocument ou insira um novo módulo no menu Inserir.
  2. Declare variáveis e defina caminhos
    Escreva o seguinte código no topo do módulo:
    Sub GerarDoModelo()
       Dim wdApp As Word.Application
       Dim wdDoc As Word.Document
       Dim caminhoModelo As String
       Dim caminhoSalvar As String
       caminhoModelo = "C:\Modelos\ModeloFatura.dotx"
       caminhoSalvar = "C:\Faturas\Fatura_" & Format(Now, "yyyymmdd_hhnnss") & ".docx"
  3. Abra o modelo como um novo documento
    Adicione esta linha:
    Set wdDoc = Documents.Open(caminhoModelo)
    Isso cria um novo documento baseado no modelo.
  4. Insira texto em um marcador
    Substitua o conteúdo do marcador por texto dinâmico:
    With wdDoc.Bookmarks("NomeCliente")
       .Range.Text = "Acme Corporation"
    End With

    Repita para cada marcador em seu modelo.
  5. Salve o novo documento
    Adicione:
    wdDoc.SaveAs2 caminhoSalvar
    wdDoc.Close
  6. Limpe as referências de objeto
    Finalize o macro com:
    Set wdDoc = Nothing
    Set wdApp = Nothing
    End Sub

Execute o macro pressionando F5 enquanto estiver no editor ou atribuindo-o a um botão na Barra de Ferramentas de Acesso Rápido. O novo documento aparece no caminho de salvamento especificado.

ADVERTISEMENT

Problemas Comuns ao Gerar Documentos com VBA

O macro para com a mensagem “O item com o nome especificado não foi encontrado”

Esse erro ocorre quando o nome de um marcador ou controle de conteúdo no código não corresponde ao modelo. Abra o modelo, pressione Ctrl+G para abrir a janela Imediato e digite ActiveDocument.Bookmarks.ShowAll = True para exibir todos os colchetes de marcadores. Verifique a ortografia exata e a capitalização de cada nome. Controles de conteúdo exigem o uso de wdDoc.ContentControls em vez de Bookmarks.

O caminho do arquivo do modelo não foi encontrado

O Word não consegue localizar o modelo se a string do caminho estiver digitada incorretamente ou se o arquivo foi movido. Use um caminho absoluto como C:\Modelos\MeuModelo.dotx. Para portabilidade, armazene o caminho em uma célula de uma pasta de trabalho do Excel ou em uma variável de ambiente do Windows e leia-o com VBA.

O documento salvo ainda mostra o conteúdo do modelo em vez dos novos valores

Isso acontece se o macro for executado antes do modelo carregar completamente. Insira um pequeno atraso após Documents.Open usando Application.Wait (Now + TimeValue("0:00:01")). Alternativamente, use DoEvents para forçar o Word a processar operações pendentes antes de inserir texto.

O macro VBA está desabilitado ou bloqueado

O Word bloqueia macros de locais não confiáveis por padrão. Salve o arquivo .dotm ou o documento que contém o macro em uma pasta confiável. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Locais Confiáveis e adicione sua pasta de projeto. Alternativamente, assine digitalmente o projeto de macro.

Geração com VBA vs Criação Manual

Item Macro VBA Processo Manual
Tempo de configuração 15–30 minutos para escrever e testar o macro Nenhum
Velocidade por documento Menos de 2 segundos 1–3 minutos dependendo do conteúdo
Taxa de erro Próximo de zero se os marcadores estiverem corretos Propenso a erros de digitação e campos perdidos
Repetibilidade Saída idêntica a cada execução Varia com cada operador
Habilidade necessária Conhecimento básico de VBA Nenhuma programação necessária

A automação com VBA é ideal quando você gera o mesmo tipo de documento com frequência. A criação manual funciona para documentos únicos onde o tempo de configuração não se justifica.

Agora você pode escrever um macro VBA que abre um modelo do Word, preenche marcadores ou controles de conteúdo e salva um novo documento. Comece criando um modelo com marcadores nomeados para cada campo necessário. Teste o macro em uma cópia do modelo para verificar a saída. Para uso avançado, integre o macro com dados do Excel ou um banco de dados para preencher vários campos em uma única execução.

ADVERTISEMENT