Como fazer mala direta do Word para PDF com um arquivo por destinatário
🔍 WiseChecker

Como fazer mala direta do Word para PDF com um arquivo por destinatário

Você precisa enviar documentos personalizados para muitos destinatários, mas cada pessoa deve receber seu próprio arquivo PDF. Uma mala direta padrão no Word produz um único documento mesclado com todos os registros em páginas separadas. Dividir esse PDF combinado manualmente leva muito tempo quando você tem centenas de destinatários. Este artigo explica como usar uma macro do Word para executar uma mala direta e salvar cada registro como um arquivo PDF separado automaticamente. Você aprenderá as etapas exatas para configurar a mesclagem, executar o código VBA e lidar com erros comuns.

Principais pontos: Mala direta para PDFs individuais no Word

  • Correspondências > Iniciar Mala Direta > Assistente de Mala Direta Passo a Passo: Prepara o documento principal e o conecta à sua fonte de dados.
  • Alt+F11 para abrir o editor VBA: Onde você cola a macro que percorre cada registro e exporta um PDF individual.
  • ActiveDocument.MailMerge.DataSource.ActiveRecord e ExportAsFixedFormat: Os dois métodos VBA que iteram pelos registros e salvam cada um como arquivo PDF.

ADVERTISEMENT

Como funciona a mala direta baseada em macro para PDF

O recurso padrão de mala direta no Word mescla todos os registros em um único documento. Para obter um PDF por destinatário, você precisa de uma macro do Visual Basic for Applications que execute a mesclagem um registro por vez. A macro percorre cada registro da fonte de dados, executa a mesclagem para aquele registro individual e chama o método ExportAsFixedFormat para salvar o resultado como PDF. Após salvar, ela fecha o documento mesclado sem salvar alterações e passa para o próximo registro. Esse processo requer um documento principal configurado corretamente com campos de mesclagem e uma fonte de dados conectada, como uma planilha do Excel, contatos do Outlook ou um banco de dados do Access. Nenhum software de terceiros é necessário.

Pré-requisitos

Antes de executar a macro, verifique o seguinte:

  • Seu documento principal contém todos os campos de mesclagem e está salvo em sua unidade local ou rede.
  • Sua fonte de dados está conectada e acessível. Para Excel, a pasta de trabalho deve estar fechada durante a mesclagem ou a macro pode falhar.
  • Você tem permissão para criar arquivos na pasta de saída especificada na macro.
  • As macros estão habilitadas no Word. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro e selecione Habilitar todas as macros ou Habilitar macros VBA. Desative a notificação de macro, se desejado.

Etapas para configurar a mala direta e executar a macro VBA

Siga estas etapas em ordem. Não pule a configuração da mala direta — a macro produzirá PDFs em branco se o documento principal não tiver campos de mesclagem ou conexão de dados.

Etapa 1: Preparar o documento principal e a fonte de dados

  1. Criar ou abrir o documento principal
    Abra um novo documento em branco ou um modelo existente. Na guia Correspondências, clique em Iniciar Mala Direta e escolha Cartas, Mensagens de E-mail ou Diretório, dependendo do tipo de saída. Cartas é a escolha mais comum para PDFs individuais.
  2. Conectar a fonte de dados
    Clique em Selecionar Destinatários > Usar Lista Existente. Navegue até seu arquivo Excel, banco de dados do Access ou Contatos do Outlook. Se usar Excel, selecione a planilha que contém os cabeçalhos das colunas. Na caixa de diálogo Selecionar Tabela, confirme que a caixa A primeira linha de dados contém cabeçalhos de coluna está marcada.
  3. Inserir campos de mesclagem
    Posicione o cursor onde cada campo deve aparecer. Clique em Inserir Campo de Mesclagem e escolha o nome da coluna na lista. Repita para todos os campos, como Nome, Sobrenome, Endereço, etc. Adicione texto estático e formatação ao redor dos campos.
  4. Visualizar e salvar o documento
    Clique em Visualizar Resultados na guia Correspondências para verificar se os dados aparecem corretamente. Salve o documento com um nome descritivo. Este é o arquivo que a macro usará como fonte.

Etapa 2: Abrir o editor VBA e inserir a macro

  1. Abrir o editor VBA
    Pressione Alt+F11 no teclado. No painel Explorador de Projetos à esquerda, localize o nome do seu documento listado em Normal ou Projeto. Se o Explorador de Projetos não estiver visível, pressione Ctrl+R para exibi-lo.
  2. Inserir um novo módulo
    Clique com o botão direito em qualquer lugar dentro do painel Projeto sob o nome do seu documento. Escolha Inserir > Módulo. Uma janela de código em branco é aberta.
  3. Copiar o código da macro
    Copie a macro a seguir e cole na janela do módulo:
Sub MailMergeToIndividualPDFs()
    Dim MainDoc As Document
    Dim DataSource As MailMergeDataSource
    Dim i As Long
    Dim RecordCount As Long
    Dim OutputFolder As String
    Dim FileName As String

    Set MainDoc = ActiveDocument
    Set DataSource = MainDoc.MailMerge.DataSource

    OutputFolder = "C:\PDFOutput\"
    ' Altere o caminho acima para a pasta desejada. Inclua a barra invertida no final.

    If Dir(OutputFolder, vbDirectory) = "" Then
        MsgBox "A pasta de saída não existe: " & OutputFolder & vbCrLf & _
               "Crie a pasta ou altere o caminho na macro.", vbExclamation
        Exit Sub
    End If

    RecordCount = DataSource.RecordCount

    For i = 1 To RecordCount
        DataSource.ActiveRecord = i
        If DataSource.ActiveRecord = wdNoDataLine Then
            GoTo NextRecord
        End If

        With MainDoc.MailMerge
            .Destination = wdSendToNewDocument
            .SuppressBlankLines = True
            .Execute Pause:=False
        End With

        FileName = OutputFolder & "Recipient_" & i & ".pdf"
        ' Altere o padrão de nomenclatura acima, se necessário. Você pode usar campos de mesclagem.

        ActiveDocument.ExportAsFixedFormat _
            OutputFileName:=FileName, _
            ExportFormat:=wdExportFormatPDF, _
            OpenAfterExport:=False, _
            OptimizeFor:=wdExportOptimizeForPrint, _
            Range:=wdExportAllDocument

        ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges

NextRecord:
    Next i

    MsgBox "Mala direta concluída. PDFs salvos em " & OutputFolder, vbInformation
End Sub

Edite o caminho OutputFolder para corresponder ao seu sistema. Use uma pasta na qual você tenha permissão de gravação. O exemplo nomeia os arquivos como Recipient_1.pdf, Recipient_2.pdf e assim por diante. Você pode alterar a linha FileName para usar um valor de campo de mesclagem, por exemplo: FileName = OutputFolder & DataSource.DataFields("Sobrenome").Value & "_" & DataSource.DataFields("Nome").Value & ".pdf". Certifique-se de que os nomes dos campos correspondam exatamente aos cabeçalhos das colunas.

Etapa 3: Executar a macro

  1. Fechar o editor VBA
    Pressione Alt+Q ou clique no botão Fechar. Você retorna ao seu documento principal.
  2. Executar a macro
    Pressione Alt+F8 para abrir a caixa de diálogo Macros. Selecione MailMergeToIndividualPDFs na lista e clique em Executar. O Word processa cada registro, cria um documento mesclado para aquele registro individual, exporta como PDF e fecha o documento mesclado. Uma caixa de mensagem aparece quando todos os PDFs são criados.
  3. Verificar a pasta de saída
    Abra a pasta definida na macro. Verifique se os PDFs existem e contêm o conteúdo personalizado correto.

ADVERTISEMENT

Problemas comuns ao executar a macro

A macro produz PDFs em branco

O documento principal não tem conexão de dados ou a fonte de dados não está selecionada. Vá em Correspondências > Selecionar Destinatários e verifique se sua lista está anexada. Visualizar Resultados deve mostrar dados antes de executar a macro. Se a fonte de dados for um arquivo Excel, certifique-se de que o arquivo esteja fechado durante a execução da macro.

Erro 5152: Não é possível salvar o arquivo

A pasta de saída não existe ou você não tem permissões de gravação. Crie a pasta manualmente ou altere o caminho OutputFolder na macro para um local existente, como sua área de trabalho. Use um caminho sem espaços, se possível.

Apenas o primeiro registro é mesclado

A macro pode parar se a fonte de dados contiver linhas vazias ou se a propriedade ActiveRecord não avançar. Verifique se sua fonte de dados não tem linhas em branco entre os registros. Adicione uma linha On Error Resume Next após a linha For i se o problema persistir, mas teste com cuidado.

O Word parece travar ou ficar lento

Processar centenas de registros pode levar vários minutos. A macro abre e fecha um novo documento para cada registro. Para acelerar o processo, desative a atualização de tela adicionando Application.ScreenUpdating = False no início da macro e Application.ScreenUpdating = True antes da linha MsgBox final.

Método da macro vs. Salvar como PDF manual

Item Método da Macro Salvar como PDF Manual
Tempo para 100 registros 2–5 minutos 20–40 minutos
Risco de erro humano Baixo Alto
Flexibilidade de nomenclatura Personalizável via VBA Renomear cada arquivo manualmente
Requer conhecimento de VBA Sim, apenas copiar e colar Não
Funciona com qualquer fonte de dados Sim Sim, mas divisão manual

O método da macro é a única maneira prática de produzir um PDF por destinatário a partir de uma mala direta no Word sem ferramentas de terceiros. A divisão manual após uma mesclagem padrão é propensa a erros e lenta para mais de alguns registros.

Agora você pode executar uma mala direta que gera arquivos PDF individuais para cada destinatário em sua fonte de dados. Teste a macro com um pequeno conjunto de três a cinco registros primeiro. Após confirmar a saída, ajuste o padrão de nomenclatura dos arquivos para incluir nomes de destinatários em vez de números. Para uso avançado, modifique a macro para salvar em uma pasta de rede ou adicionar carimbos de data no nome do arquivo.

ADVERTISEMENT