top of page

Mala direta Excel e Word

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 27 de jun. de 2023
  • 5 min de leitura

Atualizado: 4 de jul. de 2024

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.

ree

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

ree

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

ree

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:


ree

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:

ree

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:


ree

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


ree

ree

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

ree

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" }

ree





🔺 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:


ree

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.

ree

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

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page