Preencher um Documento em Word com VBA: Guia Completo

Aprenda a preencher um documento em Word com VBA usando dados do Excel. Tutorial prático para automatizar documentos como contratos e procurações.

Resposta rápida: O VBA controla o Word por automação a partir do Excel: CreateObject("Word.Application") abre o programa, Documents.Open carrega o modelo .docx e um laço percorre as colunas da planilha trocando cada marcador (#NOME, #CPF) pelo dado real com Find e Replacement. No fim, SaveAs2 grava um arquivo novo com o nome do cliente e o modelo fica intacto.

Introdução

Se você precisa preencher documentos repetidamente — como procurações, contratos, formulários ou declarações — sabe o quanto isso pode ser trabalhoso.

A boa notícia é que você pode preencher um documento em Word com VBA e automatizar esse processo em poucos minutos, sem digitar tudo manualmente.

Usando o Excel como base de dados e um simples código VBA, você consegue abrir o Word, localizar campos definidos e substituir automaticamente por informações da sua planilha. Isso economiza tempo, reduz erros e torna seu fluxo mais profissional.

Neste guia completo, você vai aprender a criar essa integração entre Excel e Word passo a passo, entender o código, personalizar para seu caso real e gerar documentos automáticos com apenas um clique.

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Por que preencher um documento em Word com VBA

Automatizar documentos no Word com VBA é útil quando você precisa:

  • Gerar contratos em massa
  • Criar procurações personalizadas
  • Preencher declarações para clientes
  • Criar certificados
  • Gerar relatórios padronizados

Benefícios

  • Economia de tempo
  • Menos erros
  • Processo automatizado
  • Profissionalismo e produtividade

Você prepara o modelo uma vez e depois só alimenta os dados no Excel.

Como estruturar os dados no Excel

Crie uma planilha com duas linhas:

  1. Linha 1: palavras-chave que existem no documento Word (ex.: #NOME, #CPF, #ENDERECO)
  2. Linha 2: dados reais que devem substituir essas palavras no documento

Assim:

#NOME#CPF#ENDERECO...
João Silva123.456.789Rua das Flores......

Esses termos serão encontrados e substituídos no Word.

Criando o modelo no Word

No Word, insira marcadores que serão substituídos — como:

Codigo
Eu, #NOME, portador do CPF #CPF, residente em #ENDERECO...

Use um padrão, como #PALAVRA, para facilitar a busca no VBA.

Salve o arquivo como Modelo Procuração.docx (ou outro nome desejado).

Código VBA para preencher documento Word automaticamente

Abra o Editor VBA no Excel (ALT + F11) e cole o código:

VBA
Sub gera_procuracao()

Set objWord = CreateObject("Word.Application")
objWord.Visible = True

Set arqProcuracao = objWord.Documents.Open(ThisWorkbook.Path & "\Modelo Procuração.docx")
Set conteudoDoc = arqProcuracao.Application.Selection

For colTab = 1 To 18
    conteudoDoc.Find.Text = Cells(1, colTab).Value
    conteudoDoc.Find.Replacement.Text = Cells(2, colTab).Value
    conteudoDoc.Find.Execute Replace:=wdReplaceAll
Next

arqProcuracao.SaveAs2 (ThisWorkbook.Path & "\Procuração - " & Cells(2, 1).Value & ".docx")

arqProcuracao.Close
objWord.Quit

Set arqProcuracao = Nothing
Set conteudoDoc = Nothing
Set objWord = Nothing

MsgBox ("Procuração gerada com sucesso!")

End Sub

Ajuste o caminho se o arquivo estiver em outra pasta.

Detalhando o código:

  • Vamos “setar” uma variável chamada “objWord” que representará o objeto do programa do Word em si, que vai ser criado no começo
  • Vamos fazer com que o objWord seja visível, para que possamos ver o resultado do código nele colocando sua propriedade Visible como True
  • Vamos “setar” uma variável chamada “arqProcuracao” que representará o objeto do arquivo a ser aberto, que de fato vai ser o arquivo de procuração, que vai estar no caminho da pasta do arquivo em Excel (dada pelo comando ThisWorkbook.Path) concatenado com “Modelo Procuração.docx”
  • amos “setar” uma variável chamada “conteudoDoc” que representará a seleção dentro do programa do Word, a partir da qual vamos fazer as modificações
  • Vamos usar de uma estrutura de repetição for no VBA para repetir ações da coluna 1 até a coluna 18, porque sabemos que nossos dados estão nas colunas 1 até 18 do arquivo em Excel, e eles que vão ser informações a serem substituídas no Word.
  • A cada coluna analisada, vamos pesquisar/procurar no Word o que estiver na nossa primeira linha de cabeçalho da tabela do Excel
  • Quando encontrado, substituir o que estiver na nossa segunda linha no Excel, de fato o que tiver de informação na tabela
  • Em seguida executar a substituição em todas as ocorrências dentro do documento do Word
  • Quando todas as substituições forem feitas, vamos salvar o arqProcuracao através do método SaveAs2 concatenando o caminho do arquivo com o que estiver na célula A2 da nossa planilha em Excel, que é o #NOME_TITULAR
  • Após tudo ser feito, iremos por boas práticas fechar o documento em word (arqProcuracao)
  • Em seguida aplicaremos o método Quit na variável que representa o Word (objWord) para que ele seja fechado
  • Por boas práticas vamos esvaziar as variáveis “arqProcuracao”, “conteudoDoc” e “objWord” (Nothing) para que elas não fiquem armazenadas o tempo inteiro na memória do computador enquanto o arquivo está aberto no Excel
  • Será gerada uma mensagem ao final do código (MsgBox) informando que a procuração foi gerada com sucesso
  • Se encerra o código
Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

Boas práticas e dicas avançadas

  • Use placeholders padrão como #NOME
  • Salve o modelo protegido para evitar alterações acidentais
  • Use tabelas para organizar melhor os dados no Excel
  • Gere lotes de documentos com múltiplas linhas com pequenas adaptações no loop

Aplicações reais e sugestões de uso

  • Escritórios jurídicos
  • Financeiro e RH
  • Setor público
  • Certificados e credenciais
  • Cartórios e tabelionatos
  • Contratos comerciais

Essa automação transforma trabalho manual em processo inteligente e escalável.

Conclusão

Agora você já sabe como preencher um documento em Word com VBA e automatizar a criação de procurações, contratos e diversos documentos corporativos em segundos. Uma pequena macro que gera enormes ganhos de tempo e profissionalismo.

Quer dominar VBA para automatizar ainda mais rotinas e integrar Excel com Word, PowerPoint e Outlook? Confira nosso Curso VBA Impressionador.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou confira o nosso canal do Youtube.

O que você aprende neste vídeo

Resposta rápida: Para preencher um documento do Word com VBA a partir do Excel, crie o objeto com CreateObject("Word.Application"), abra o modelo com Documents.Open e percorra as colunas da planilha com um laço, trocando cada marcador pelo dado da linha com Find e Replacement. No fim, SaveAs2 grava um arquivo novo e o modelo continua intacto.

Neste vídeo (27 min):

  • 1:25 - Marcar no modelo do Word os campos que serão trocados pelos dados
  • 2:30 - Abrir o editor do VBA com Alt + F11
  • 4:50 - Criar o objeto do Word com CreateObject("Word.Application"), sempre precedido de Set
  • 7:35 - Abrir o modelo com Documents.Open e o caminho do arquivo
  • 8:35 - Montar o caminho com ThisWorkbook.Path em vez de digitar a pasta
  • 9:45 - Guardar a seleção do documento em uma variável para percorrer o texto
  • 11:45 - Trocar o marcador com Find.Text, Replacement.Text e Execute
  • 14:55 - Repetir a troca com um laço For percorrendo as colunas da planilha
  • 16:50 - Puxar o marcador da linha 1 e o dado da linha 2 pela coluna
  • 20:40 - Salvar com SaveAs2, usando o nome do titular no arquivo
  • 23:00 - Fechar o documento, sair do Word e limpar as variáveis
  • 24:45 - Avisar com MsgBox e atribuir a macro a um botão da planilha

Trechos do vídeo:

  • Sempre que você atribui um objeto a uma variável, precisa usar o Set antes.
  • O ThisWorkbook.Path devolve o caminho da pasta onde a planilha está salva.
  • Com uma estrutura de repetição você faz a mesma troca em todas as colunas.
  • Depois de usar a variável de objeto, deixe ela como Nothing para liberar memória.

FAQ - Perguntas Frequentes sobre Preencher um Documento em Word com VBA

1. Como preencher um documento do Word usando VBA no Excel?

Você pode preencher um documento Word automaticamente criando um script no Excel com CreateObject("Word.Application"), abrindo o modelo do Word e substituindo marcadores via Find.Execute. O VBA busca os campos no Word e insere os dados que estão na planilha.

2. É possível gerar vários documentos Word de uma vez usando VBA?

Sim. Basta adaptar o loop para percorrer várias linhas do Excel. Cada linha representa um novo documento, e o VBA substitui os placeholders no modelo Word para cada registro, permitindo gerar dezenas ou centenas de arquivos automaticamente.

3. Como preparar o documento Word para substituir informações com VBA?

Crie marcadores no Word como #NOME ou #CPF nos locais onde deseja inserir dados. Esses placeholders serão encontrados via VBA e substituídos pelos valores da planilha. Evite nomes genéricos e mantenha o mesmo padrão entre Excel e Word.

4. Onde devo armazenar o modelo do Word para a macro funcionar?

O ideal é salvar o arquivo modelo na mesma pasta da planilha Excel e usar ThisWorkbook.Path no VBA. Assim, o código encontra o documento automaticamente sem precisar configurar caminhos manuais.

5. Vale a pena automatizar documentos Word com VBA?

Sim. Automatizar documentos com VBA economiza tempo e evita erros ao preencher contratos, procurações e formulários repetitivos. Se sua rotina exige inserir dados manualmente no Word, usar VBA deixa o processo mais rápido, seguro e profissional.

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Posts mais recentes de VBA

Posts mais recentes da Hashtag Treinamentos