Cara Print Mail Merge ke PDF per File ( How to Print Mail Merge To Individual PDF)
Melanjutkan Part sebelum ya mengenai pemanfaatan Mail Merge, Postingan kali ini adalah akhir dari Trilogi Tema tersebut, yaitu bagaimana cara print mail merge ke pdf per file, sesuai data yang kita buat di spreadsheet atau Ms. Excel.
Yups, mungkin sudah banyak yang tahu atau menebak, salah satu caranya ialah dengan split pdf online, namun kekurangan dari split pdf online ini adalah entah anda upload ke website manapun hasil akhirnya tetap sama, yaitu memang benar pdf yang anda upload akan ter split, terpisah menjadi beberapa file, namun nama file akan tetap sama dengan file pertama yang anda upload.
Misal file PDF yang anda ada upload itu Anda beri nama dokumen, maka hasil akhirnya File yang anda upload itu menjadi di dokumen 1, dokumen 2 dan seterusnya.
Yang ingin saya jelaskan Iyalah Bagaimana cara kita print mail merge langsung dari Microsoft Word menjadi beberapa file PDF sesuai dengan data di Microsoft Excel.
Salah satu caranya ialah memanfaatkan fitur modul visual basic di Microsoft Word.
mengenai caranya Silakan anda Simak video di bawah ini yang hanya akan muncul setelah tanggal 21 Februari 2021 ini.
Berikut coding Visual Basic yang Anda gunakan ( tolong diketik agar pintar sekalian belajar jangan dicopas karena memang tidak bisa oke)
Option Explicit
Const FOLDER_SAVED As String = "lokasi Output Folder"
Const SOURCE_FILE_PATH As String = "Lokasi File Excel"
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.SaveAs 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
'adopted from https://learndataanalysis.org/automate-mail-merge-to-save-each-record-individually-with-word-vba/
'with additional delete docx file
Cara penggunaannya hanya memasukan alamat output atau folder penyimpanan di “Lokasi output folder” dan Alamat Penyimpanan file Excel beserta nama file Excel nya dan jenis filenya, Apakah XLSX ataukah xls di “ lokasi file excel” juga mengganti “ ID”.
Untuk lebih jelasnya silakan lihat video di atas terima kasih
wassalam warahmatullah Wabarokatuh.
Bagaimana kode VBA jika mau simpan hanya 1 record yang aktif saja?
BalasHapusWow, anda keren sekali bang, sangat membantu, semoga berkah ya bang
BalasHapus