Tutorial ini berisi cara memisahkan dan menyimpan file Word secara per halaman dengan menggunakan kode VBA.
- Dimana setiap halaman disimpan menjadi file tersendiri dalam format DOCX.
- Judul file menggunakan keterangan pada baris pertama. Jadi Anda bisa menempatkan nama orang, nama departemen, nomor invoice, dan sebagainya pada baris tersebut.
- Cara ini tidak berlaku atau tidak akan menyimpan isi header / footer.
- Cara save Word ke PDF per halaman secara sekaligus.
- Cara save Word ke PDF per 2 halaman.
- Cara save Word ke PDF halaman tertentu atau bagian tertentu saja (contoh: tabel).
Cara Save Word Per Halaman
Sebagai contoh, kita akan memisahkan file Word yang berisi 3 halaman. Judul masing-masing file adalah tulisan pada baris pertama, yaitu Page 1, Page 2, Page 3.
Berikut cara membuatnya, yang bisa diterapkan di Word 2007, 2010, 2013, 2016, 2019, 2021, 365.
Silakan simak video berikut atau baca penjelasan detil di bawah ini.
Langkah-langkah menyimpan file di Microsoft Word per halaman:
- Buka file Word yang ingin dipisahkan per halaman tersebut. Catatan: bila membuat dokumen baru, pastikan file Word-nya disimpan (Save) terlebih dahulu dan taruh dalam folder khusus.
- Selanjutnya, tekan tombol ALT + F11 untuk membuka editor VBA.
- Di tab Insert, pilih Module.
- Masukkan kode berikut dan tekan tombol Run (F5) untuk menjalankan kode.
Sub SplitIntoPages() 'Update by Computer1001.com Dim docMultiple As Document Dim docSingle As Document Dim rngPage As Range Dim iCurrentPage As Integer Dim iPageCount As Integer Dim strNewFileName As String, filePath As String Application.ScreenUpdating = False 'Makes the code run faster and reduces screen _ flicker a bit. Set docMultiple = ActiveDocument 'Work on the active document _ (the one currently containing the Selection) filePath = docMultiple.Path & Application.PathSeparator Set rngPage = docMultiple.Range 'instantiate the range object iCurrentPage = 1 'get the document's page count iPageCount = docMultiple.Content.ComputeStatistics(wdStatisticPages) Do Until iCurrentPage > iPageCount If iCurrentPage = iPageCount Then rngPage.End = ActiveDocument.Range.End 'last page (there won't be a next page) Else 'Find the beginning of the next page 'Must use the Selection object. The Range.Goto method will not work on a page Selection.GoTo wdGoToPage, wdGoToAbsolute, iCurrentPage + 1 'Set the end of the range to the point between the pages rngPage.End = Selection.Start End If Set docSingle = Documents.Add 'create a new document 'set text of new document to same as rngPage docSingle.Range.FormattedText = rngPage.FormattedText 'remove any manual page break to prevent a second blank docSingle.Range.Find.Execute Findtext:="^m", ReplaceWith:="" strNewFileName = Left(docSingle.Paragraphs(1).Range.Text, Len(docSingle.Paragraphs(1).Range.Text) - 1) & ".docx" docSingle.SaveAs filePath & strNewFileName 'save the new single-paged document iCurrentPage = iCurrentPage + 1 'move to the next page docSingle.Close 'close the new document rngPage.Collapse wdCollapseEnd 'go to the next page Loop 'go to the top of the do loop Application.ScreenUpdating = True 'restore the screen updating 'Destroy the objects. Set docMultiple = Nothing Set docSingle = Nothing Set rngPage = Nothing End Sub
File Word yang terpisah tersebut akan muncul di folder yang kita buat pada langkah pertama di atas.
Selesai. Jangan lupa untuk menyimpan file utama yang berisi seluruh halaman.
Saat penyimpanan, akan muncul pertanyaan dari Word.
- Pilih YES bila tidak ingin menyimpan kode macro VBA dan dokumen tetap disimpan dalam format DOCX.
- Pilih No bila ingin menyimpan macro VBA. Kemudian di Save as type, pilih Word Macro-Enabled Document. Dokumen akan memiliki format DOCM.
Lihat juga: Cara Menggabungkan File Word Menjadi Satu
Catatan: kode dalam tutorial berasal dari sini dan dimodifikasi lagi agar bisa menyimpan file ke format DOCX.
Penutup
Demikian cara memisahkan halaman di Word menjadi beberapa file DOCX dengan VBA.
Cara ini sangat berguna untuk memisahkan file hasil Mail Merge yang berupa surat.