top of page

Mala direta Excel e Word

Atualizado: 4 de jul.

Mala direta é uma funcionalidade que permite a criação de correspondências personalizadas em massa, como cartas, e-mails, etiquetas de endereço ou envelopes, a partir de um documento padrão no Microsoft Word combinado com uma fonte de dados (como uma planilha do Excel). Esse recurso é amplamente utilizado para enviar informações personalizadas a um grande número de destinatários de forma eficiente.


No exemplo abaixo mostro um exemplo de envio de dados entre o excel e o word, e depois finalizo em um pdf, mas poderia ser também através de e-mails.


Para isso monte sua planilha da forma que desejar (planilha estruturada). Os nomes das colunas serão usadas de conexão com o word, por tanto, evite muda-las posteriormente para não dar erro.


As colunas em amarelo (coluna B e C) são a que quero que apareça no documento Word.


Agora abra o Word que deseja automatizar o preenchimento, monte todo o layout que você quer no word e agora vamos fazer um DE / PARA com os dados da planilha para os campos no Word.


No Word, clique em Correspondências, selecionar Destinatários, Usar uma lista existente

Selecione o arquivo em Excel, e posteriormente selecione a planilha (aba) que esta alocado os dados.


A partir deste momento, a conexão entre o arquivo word e excel foram feitas e os dados estarão disponíveis para que você faça o apontamento uma única vez. O Word não mostra nenhum aviso, por tanto nada vai mudar na tela, a diferença estará quando você clica novamente na guia Correspondências, Inserir Campo de Mesclagem.


O campo de mesclagem são os nomes das colunas que estão os dados lá no excel. Para fazer o DE / PARA eu coloco o cursor do mouse no lugar exato que eu quero que o dado apareça no word e insiro o nome da coluna apenas clicando nos nomes disponíveis conforme imagem abaixo:



Neste exemplo, a palavra "nome" é um texto fixo do meu documento, mas o nome do contratante é um dado variável que será alterado lá no Excel. Para que a mágica aconteça, preciso fazer o apontamento colocando o cursor do mouse no local (contratante) e clicando no nome (contratante) conforme imagem acima. Veja que estamos falando do "contratante" que está no documento do Word e o "contratante" que esta em "inserir campo de mesclagem". Após fazer isso, ficará assim:

Você terá que fazer estes apontamentos no documento, para cada item colunar do Excel.

Após finalizar os apontamentos, clique em Visualizar Resultados no Word, dentro da guia de Correspondências também.


O arquivo em Excel poderá ficar fechado, pois não interfere.

Antes de fechar o arquivo Word, salve-o.


Ao abrir o arquivo Word novamente, irá aparecer a seguinte mensagem:


Clique em sim, para que o Word leia os dados do Excel e eles irão aparecer automaticamente no seu documento. Caso não apareça, vá até a guia Correspondências e clique em Visualizar Resultados no Word.



Toda vez que você abrir o arquivo no Word, tenha a certeza que a sua fonte de dados (planilha Excel) esta atualizada, e sempre que abrir o documento no word, recomendo além de clicar em SIM na caixa box acima, para garantir que esta apontando para a planilha que preciso, clico em Correspondências, Selecionar Destinatários, Usar uma lista existente, procure na coluna da esquerda a pasta local que esta sua planilha e clique nela para atualizar.

No arquivo de Word atualizado, você pode clicar em "Visualizar resultados" para fazer uma conferência breve e se estiver ok, clico em Concluir e Mesclar e neste exemplo, posso enviar por e-mail:


Exemplo de mala direta com envio de diversos e-mails




Em mesclagem para e-mail, em Para: Seleciono a coluna contendo os e-mails (base de dados no Excel), digito o assunto, abro a caixa de e-mail do Outlook (confere se esta logado, o ícone do Outlook precisa estar aberto na barra de tarefas) e clico em Ok e todos os e-mails serão enviados de acordo com os dados linha a linha no excel com o layout que você montou no word.





Corrigir tipo de dados do mala direta entre Excel e Word


Ao abrir o word por padrão a data vem no formato americano, mesmo que no Excel esteja formatado em dia, mês e ano, no word aparecerá diferente. Para corrigir tipo de dados no Word com o mala direta Clique em Correspondências e em Visualizar resultados.

Selecione o campo que deseja corrigir/ajustar que estará entre << e >>, e clique com o botão direito e em alternar códigos de campo




🔺 Formato data dd/mm/yyyy


Selecione o campo de data que estará entre << e >>,

clique com o botão direito e em alternar códigos de campo e estará:

{ MERGEFIELD PERIODO_IN}


Meu campo de data, estou chamando de periodo_in


vamos substituir a configuração de data e a data estará no formato padrão BR:


{ MERGEFIELD PERIODO_IN \@ "dd/MM/yyyy" }






🔺 Nome completo do mês, dia, ano (exemplo: Junho 28, 2024)


{ MERGEFIELD Data \@ "MMMM d, yyyy" }


🔺 Trazer data com dia da semana:


{ MERGEFIELD Data \@ "ddd, MMM d, yyyy" }


🔺 Número inteiro

{ MERGEFIELD Numero \# "0" }


🔺 Número com duas casas decimais


{ MERGEFIELD Numero \# "0.00" }


🔺 Número com separador de milhares


{ MERGEFIELD Numero \# "#,##0" }


🔺 Número em formato de moeda


{ MERGEFIELD Numero \# "$#,##0.00" }


🔺 Primeira letra maiúscula:


{ MERGEFIELD Nome \* FirstCap }


🔺 Todas as letras maiúsculas:


{ MERGEFIELD Nome \* Upper }

🔺 Todas as letras minúsculas:

{ MERGEFIELD Nome \* Lower }


🔺 Combinar um nome completo a partir de primeiros e últimos nomes


{ MERGEFIELD PrimeiroNome } { MERGEFIELD UltimoNome }


🔺 Exibir "Sr." ou "Sra." baseado no campo de gênero


{ IF { MERGEFIELD Genero } = "M" "Sr." "Sra." } { MERGEFIELD UltimoNome }




Alguns exemplos práticos:


Nome: { MERGEFIELD Nome \* FirstCap } Data de Nascimento: { MERGEFIELD DataNascimento \@ "dd/MM/yyyy" } Salário: { MERGEFIELD Salario \# "$#,##0.00" } Gênero: { IF { MERGEFIELD Genero } = "M" "Sr." "Sra." } { MERGEFIELD UltimoNome }





Exemplo de mala direta gerando pdf automático


Para auxiliar o usuário, criei esta guia de suporte:


Com esta guia, criei um código em VBA para que seja exportado para PDF o documento para que seja salvo no mesmo caminho que esta o word. Caso queira fazer esta guia, utilizo o Ribbon, você pode saber mais clicando aqui.





Segue código VBA caso queira:

(É preciso habilitar a guia desenvolvedor e criar um módulo, após criar o módulo é preciso criar um botão e chamar a macro criada)


Sub ExportarParaPDF()


Dim strNomeArquivo As String

Dim strCaminhoArquivo As String

Dim strCaminhoPDF As String


' Obter o nome e o caminho do arquivo atual

strNomeArquivo = ActiveDocument.Name

strCaminhoArquivo = ActiveDocument.Path


' Remover a extensão .docx do nome do arquivo

If InStr(strNomeArquivo, ".docx") > 0 Then

strNomeArquivo = Left(strNomeArquivo, InStr(strNomeArquivo, ".docx") - 1)

End If


' Definir o caminho do arquivo PDF

strCaminhoPDF = strCaminhoArquivo & "\" & strNomeArquivo & ".pdf"


' Exportar para PDF

ActiveDocument.ExportAsFixedFormat OutputFileName:=strCaminhoPDF, _

ExportFormat:=wdExportFormatPDF


' Informar ao usuário que o arquivo foi salvo

MsgBox "Contrato PDF salvo em: " & strCaminhoPDF


End Sub



Criar botões de forma simples:


Arquivo, Mais, Opções, Personalizar Faixa de Opções, Nova Guia

Nesta nova guia, você pode adicionar botões de sua preferência ou chamar alguma macro que tenha criado no VBE.

Para chamar a macro, em Escolher comandos em, selecione Macro e adicione na listagem a direita da guia que tiver criado.


Uma outra dica, é que quando contem uma data em uma célula no Excel e os dados são migrados para o Word, a data vem na formatação diferente do padrão. Usei duas fórmulas para tratar no Excel para texto que pode auxiliar caso precise:


Converter moeda em texto:

=TEXTO(A1;"[$R$-pt-BR] #.###,00")


Converter data em texto

=TEXTO(A1;"dd/mm/yyyy")






Posts recentes

Ver tudo
bottom of page