Export PDF : Basic

File PDF (Portable Document Format) telah menjadi salah satu format berbagi dokumen yang paling umum digunakan saat ini.

Kemampuannya yang dapat dibaca secara universal membuatnya menjadi pilihan utama bagi banyak orang yang ingin berbagi informasi, terutama dalam konteks bisnis.

Dalam aplikasi seperti Microsoft Excel,

kita dapat menggunakan Visual Basic for Applications (VBA) untuk membuat, mengelola, dan menyesuaikan file PDF sesuai kebutuhan kita.

Materi kali ini, akan membahas cara menggunakan VBA dalam Excel untuk membuat dan mengelola file PDF.

Membuat PDF dengan VBA di Excel

Untuk membuat PDF menggunakan VBA di Excel, kita dapat menggunakan library atau objek yang disediakan oleh Microsoft.

Salah satu cara yang umum adalah menggunakan objek ExportAsFixedFormat.

Berikut adalah sintak dasar penggunaannya:

expression.ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish, FixedFormatExtClassPtr)

Fungsi ExportAsFixedFormat dalam VBA Excel digunakan untuk mengekspor atau menyimpan lembar kerja (worksheet) atau objek tertentu dalam berbagai format file, seperti PDF, XPS, dan format gambar lainnya.

Fungsi ini memungkinkan pengguna untuk mengatur beberapa parameter yang mengontrol bagaimana data akan diekspor.

Berikut adalah beberapa parameter yang dapat digunakan dalam fungsi ExportAsFixedFormat:

  • Type: Parameter ini menentukan tipe file yang akan diekspor. Nilainya bisa berupa xlTypePDF, xlTypeXPS, xlTypeCSV, xlTypeXLSX, dan lainnya, tergantung pada format file yang diinginkan.
  • Filename: Parameter ini merupakan string yang berisi path (lokasi file) beserta nama file yang akan disimpan. Contohnya: "C:\Folder\file.pdf".
  • Quality: Parameter ini menentukan kualitas ekspor untuk file PDF. Nilainya bisa berupa xlQualityStandard atau xlQualityMinimum. Semakin tinggi kualitasnya, semakin besar ukuran file yang dihasilkan.
  • IncludeDocProperties: Parameter opsional yang menentukan apakah properti dokumen akan disertakan dalam file yang diekspor. Nilainya bisa True atau False.
  • IgnorePrintAreas: Parameter opsional yang menentukan apakah area cetak yang diatur pada lembar kerja akan diabaikan. Nilainya bisa True atau False.
  • From: Parameter opsional yang menentukan halaman pertama yang akan diekspor. Ini bisa berupa nomor halaman atau Nothing jika semua halaman akan diekspor.
  • To: Parameter opsional yang menentukan halaman terakhir yang akan diekspor. Ini bisa berupa nomor halaman atau Nothing jika semua halaman akan diekspor.
  • OpenAfterPublish: Parameter opsional yang menentukan apakah file yang dihasilkan akan dibuka secara otomatis setelah proses ekspor selesai. Nilainya bisa True atau False.

Contoh penggunan scriptnya seperti dibawah ini:

Sub ExportToPDF()
    Dim filePath As String
    filePath = "C:\Folder\file.pdf" ' Ganti dengan lokasi dan nama file yang diinginkan
    
    ' Export sheet aktif ke PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End Sub

Pada script diatas, ExportAsFixedFormat mengexport Sheet aktif dan menyimpan Filenya sesuai dengan isi yang ada di FilePath.

Bagaimana jika sheet tertentu yang ingin di Export menjadi PDF?

Jika Sheet yang akan di Export bukan sheet aktif,

Pada Sheet aktif bisa diganti dengan nama sheet yang ingin di Export menjadi file PDF.

Sub ExportToPDF()
    Dim filePath As String
    filePath = "C:\Folder\file.pdf" 
    
    ' Export sheet aktif ke PDF
    Worksheets("Laporan").ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End Sub

Pada Script diatas, Sheet “Laporan” yang akan di Export menjadi File PDF.

Hasil File PDF ditentukan oleh setingan page setup pada workshsheet

vba.co.id

Nama File Dinamis Range

Pada dua contoh script diatas, penamaan file pada hasil Export bernilai statis atau Hardcode. Artinya nama file hanya bisa diganti melalui penulisan script langsung.

Penamaan file bisa langsung melalui Range atau bahkan melalui Save dialog.

Untuk penamaan File melalui Range, lokasi Folder harus diisi dengan lengkap, contohnya bisa dilihat dibawah ini.

Sub ExportToPDF()
    Dim filePath As String
    Dim nFolder As String

    nFolder = "C:\Folder\"

    'nama File dari Range A1
    filePath = nFolder & Range("A1").Value & ".pdf"
    
    'Export sheet aktif ke PDF
    Worksheets("Laporan").ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End Sub

Nama File Dinamis SaveAs Dialog

Dengan menggunakan Dialog save as, penamaan file PDF menjadi lebih dinamis, karena nama file bisa dibuat apapun saat Export dilakukan.

Sub ExportToPDF()
    Dim filePath As String
    Dim nFolder as String

    filePath = Application.GetSaveAsFilename( _
        fileFilter:="PDF Files (*.pdf), *.pdf", _
        Title:="Save As PDF")
    
    ' Periksa apakah pengguna telah memilih file
    If filePath = False Then
        MsgBox "Export PDF dibatalkan."
        Exit Sub
    End If

    ' Export sheet ke PDF
    Worksheets("Laporan").ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard
End Sub

Bagaimana jika Sheet yang mau di export menjadi PDF lebih dari 1 misalnya ada 4 sheet dan semuanya ingin ada atau menjadi 1 file pdf saja?

Untuk menjawab ini akan dibahas pada meteri selanjutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp