[Sertifikat Otomatis] Cara Mail Merge dan simpan dokumen pdf secara individual dengan format nama

Nadira Fawziyya
5 min readJun 5, 2021

--

Kemarin aku dapet tugas bikin sertifikat online gitu, karena banyak dan udh ada excel/spreadsheetnya, ga mungkin dong manual. Jadi disini aku mau ngeshare cara automatisnya dengan mail merge di word dan nyimpannya sebagai pdf dengan format nama tertentu gmn. Sebelumnya aku make add on autocrat di google spreadsheet, tp karena dia suka tiba2 ada error “The API developer key is invalid” (Trus beberapa jam kemudian errornya ilang padahal ga aku apa-apain, jadi ini kayaknya dari server gitu), makanya aku pindah ke mail merge. Dan di mail merge juga eksekusinya lebih cepat selesainya, kalo kalian ada pertimbangan waktu, bisa dicoba mail merge (walau mungkin untuk pertama kali bakal kagok2, hehe).

Kita akan membahas :

  1. Ubah Google Slide ke Microsoft Word
  2. Mail Merge
  3. Simpan sebagai PDF

Untuk apa aja yang digunakan, cukup siapkan Microsoft Word (kalo aku makenya microsoft 365 for enterprise, tapi harusnya versi2 word lain bisa. Lalu juga udah ada file excel yang akan dipake ya.

1. Ubah Google Slide ke Microsoft Word

Karena aku awalnya make autocrat, jadi aku templatenya naronya di google slide. Karna autocratnya error, jadi pindahin ke word. Ga automatis si, tp ya gini cara aku.

Step :

ilustrasi google slide :

(1.i) Untuk tulisan yang akan diubah dihapus (kan awalnya make <<Nama Proper>>, ini dihapus aja). Jadi tulisan2 template yang ga perlu diubah/digenerated, dan bgnya aja yang ada di slide. Itu kita download as JPEG (File> Download >JPEG image)

(1.ii) Di word, kamu bikin file docs baru dan kamu ubah size kertasnya sesuai foto yang didownload. Size slide bisa diliat di (File>Page Setup) dan ngatur size di word bisa di (Layout > Size >More Paper size > Page Setup)

(1.iii) Trus insert foto slide yang didownload ke word. Atur supaya bisa full, aku make (klik kanan>Warp Text> Behind Text). Trus dilebarin sesuai kertas.

(1.iv) Lalu untuk text yang kita hapus, kita pilih (Insert> Shapes >Text Box). Lalu tuliskan <<Nama Proper>> sesuai yang diinginkan, lalu fontnya juga disesuaikan semirip aja gitu (Karena fontnya emg bisa beda kan).

(1.v) Save docs ini dengan nama yang kamu inginkan.

(1.vi) Lalu lanjut ke mail merge

2. Mail Merge

Yang harus disiapkan : File excel (kalo bisa row 1 itu nama kolom, dan row 2 langsung isi kolomnya.)

(2.i) Pada docs yang sama, kita atur file excel yang diinginkan.

Caranya :

(2.i.1) Klik (Mailings>Select Recipients>Use an Existing List). Lalu pilih file excel yang akan digunakan dan pilih Open. Pada kasus ini aku make file “Bio.xlsx”.

(2.i.2) Pada dialog Select Table, kamu pilih sheet yang akan digunakan yang mana didalam file excel yang dipilih itu. Misal aku milih Tabel “Biologi$” (tanda $ aslinya g ada di nama tabel asli, emg ke-recognize-nya gitu)

(2.i.2) Lalu setelah itu, blok bagian <<Nama Proper>> yang udah kita bikin sebagai teks di step (1.iv) dan lalu klik (Insert Merge Field), lalu pilih nama kolom yang kamu mau, misal aku pilih “Nama_Proper”.

(2.i.3) Lalu kalo kamu mau ngeliat previewnya bisa klik “Preview Results”.

(2.i.4) Save lagi dan lanjut ke nyimpannya sebagai pdf. Aku nyimpannya sebagai “Bio.docx”.

3. Simpan sebagai PDF.

Sebenernya ada 2 cara, simpan sebagai 1 pdf aja (jadi isinya banyak halaman sesuai row) dan cara ke dua itu simpan masing2 individu dengan pake format nama.

(I) Simpan batch

Ini untuk cara simpan sebagai 1 pdf aja. Jadi di docs yang udh dibuat sebelumnya, klik (Finish & Merge). Klik (Edit Individual Documents) kalo untuk tiap individunya masih ada yang mau di edit (jadi nanti ada di docsnya jadi banyak pagenya sesuai row excel dan bisa edit2 dulu). Apabila mau langsung ke pdf aja, klik (Print Documents ) dan All records (terserah si mau spesifik atau semua aja) dan pilih lokasi penyimpanan. Selesai deh. Kalo mau di split masing2 tanpa perlu format nama bisa pake split pdf per pagenya di tools online.

(II) Simpan dokumen pdf secara individual dengan format nama

Masih di page dokumen yang sama, kita klik alt F11 (ngerti kan caranya), bakal kebuka “Microsoft Visual Basic for Applications”. Lalu di Projectnya, kita (klik kanan > Insert> Module).

Misal kita ingin menyimpan file-file pdf dengan Format Nama “FormatNama-” yang diikuti dengan nama peserta. File excel yang digunakan berada di “C:\Users\Bio.xlsx” dan pdf-pdf akan disimpan ke folder pada direktori “C:\Users\Biologi\”. Pada excel Bio.xlsx, sheet yang digunakan adalah sheet Biologi dan nama peserta yang akan dicantumkan di nama pdf berada di field “Nama Proper”. File docs yang digunakan bernama “Eko.docs”. Kode yang digunakan adalah berikut. (Perhatikan yang di tanda petikin aja)

Option ExplicitConst FOLDER_SAVED As String = "C:\Users\Biologi\FormatNama-"
Const SOURCE_FILE_PATH As String = "C:\Users\Bio.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 [Biologi$]"

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("Nama Proper").Value & ".docx", wdFormatDocumentDefault
TargetDoc.ExportAsFixedFormat FOLDER_SAVED & .DataSource.DataFields("Nama Proper").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

Setelah di copy paste ke sana, lalu klik run atau kayak tombol play.

Ditunggu deh. Di aku berhasil sii

Sekian terima kasih.

Referensi

Menyimpan dokumen Mail Merge (Microsoft Word) individual dalam bentuk PDF

Ceritanya begini, saya dapat tugas untuk membuat dokumen LOA(Letter of Acceptance) berdasarkan data pada Microsoft…

rey1024.medium.com

https://learndataanalysis.org/automate-mail-merge-to-save-each-record-individually-with-word-vba/

--

--