0% found this document useful (0 votes)
49 views2 pages

Kode Macros Mailing List

This document describes a VBA macro that performs a mail merge from an Excel data source to create individual PDF documents. The macro opens the Excel data source, loops through each record to perform the mail merge, saves the merged document as a DOCX and PDF file using the record ID, closes and deletes the temporary DOCX files.

Uploaded by

Dicki Harissandi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views2 pages

Kode Macros Mailing List

This document describes a VBA macro that performs a mail merge from an Excel data source to create individual PDF documents. The macro opens the Excel data source, loops through each record to perform the mail merge, saves the merged document as a DOCX and PDF file using the record ID, closes and deletes the temporary DOCX files.

Uploaded by

Dicki Harissandi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Option Explicit

Const FOLDER_SAVED As String = "D:\yuhuuu\surat-"

Const SOURCE_FILE_PATH As String = "D:\yuhuuu\nilaii.xlsx"

Sub MailMergeToIndPDF()

Dim MainDoc As Document, TargetDoc As Document

Dim dbPath As String

Dim recordNumber As Long, totalRecord As Long

Set MainDoc = ActiveDocument

With MainDoc.MailMerge

   

        '// if you want to specify your data, insert a WHERE clause in


the SQL statement

        .OpenDataSource Name:=SOURCE_FILE_PATH, sqlstatement:="SELECT *


FROM [Sheet1$]"

           

        totalRecord = .DataSource.RecordCount

        For recordNumber = 1 To totalRecord

       

            With .DataSource

                .ActiveRecord = recordNumber

                .FirstRecord = recordNumber

                .LastRecord = recordNumber
            End With

           

            .Destination = wdSendToNewDocument

            .Execute False

           

            Set TargetDoc = ActiveDocument

            TargetDoc.SaveAs2 FOLDER_SAVED
& .DataSource.DataFields("ID").Value & ".docx", wdFormatDocumentDefault

            TargetDoc.ExportAsFixedFormat FOLDER_SAVED
& .DataSource.DataFields("ID").Value & ".pdf",
exportformat:=wdExportFormatPDF

            TargetDoc.Close False

            Set TargetDoc = Nothing

        Next recordNumber

End With

    On Error Resume Next

    Kill FOLDER_SAVED & "*.docx"

    On Error GoTo 0

Set MainDoc = Nothing

End Sub

'with additional delete docx file

You might also like