Cara Export File PDF dengan Password Dengan Excel VBA

File PDF banyak sekali digunakan dilingkungan excel untuk digunakan dalam berbagi document. File PDF memiliki kelebihan tersendiri sehingga sampai saat ini file PDF masih banyak digunakan dalam berbagi document yang bersifat rahasia dan tidak untuk di edit.

Sebenarnya dalam Microsoft Excel sangat mudah untuk merubah File Excel menjadi PDF. Yang diperlukan hanyalah melakukan Save As, kemudian Pilih Format File *.pdf kemudian Save. Secara otomatis File Excel kita akan diubah menjadi file PDF.

Beberapa orang yang sudah terbiasa menggunakan VBA tentu selalu ada keinginan untuk membuat file pdf ini secara otomatis dengan bantuan Script VBA.

VBA sudah menyediakan script untuk membuat file excel menjadi Pdf melalui method ExportAsFixedFormat. Sintaksis dari Script untuk menyimpan file excel menjadi pdf adalah sebagai berikut.

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

Semua paremeter yang ada pada ExportAsFixedFormat beberepa sudah memiliki nilai default.

Jadi untuk sebagian paremeter bisa digunakan dan tidak. jika dibuatkan dalam script hasilnya contohnya seperti ini.

Dim NamaFile as string
NamaFile = "D:\NamaFile.pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NamaFile, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Script VBA Untuk Membuat PDF berPassword

Seperti yang kita tahu, banyak perusahaan yang menggunakan pdf untuk mengirim file rahasia seperti tagihan kartu kredit, Mutasi Rekening dll, dan file pdf yang dikirim dalam keadaan terPassword.

Lalu bagaimana cara kita buat sebua file pdf melalui VBA dengan penambahan password?. Apakah bisa dilakukan atau tidak?.

Kita kembali ke methode diatas, jika kita lihat pada Methode ExportAsFixedFormat, kita tidak menemukan parameter untuk memasukan Password.

Ya, untuk Export menggunakan method bawaan dari VBA memang tidak disediakan untuk menambahkan Password pada File PDF yang kita Export.

Agar bisa menambahkan Password pada File PDF dengan VBA, kita membutuhkan third party application atau Aplikasi pihak ketiga untuk melakukan ini.

Ada banyak sekali Aplikasi pihak ketiga yang bisa digunakan untuk membantu membuat password pada Export PDF dengan VBA.

Yang akan kita gunakan untuk contoh kali ini adalah mengunakan PDF ToolKit atau PDFTK.

Kelebihan dari PDFTK ini adalah bisa melakukan export PDF memalui Command Prompt sehingga mudah di adaptasi oleh VBA.

Membuat PDF berPassword dengan VBA

untuk membuat PDF berpassword dengan VBA memaluia PDFTK, langsung saja disiapkan bahan-bahannya.

  1. PDF Toolkit dari PDFTK bisa di download melalui link berikut Download PDF Toolkit
  2. Script untuk Menjalankan ExportAsFixedFormat dan PDFTK yang bisa dilihat contohnya pada script dibawah ini
Private Sub BuatPDF()
Rem Auth : ExcelNoob.com
Dim NamaFile As String
Dim NewPdf As String
Dim Password As String

NamaFile = "D:\NamaFile.pdf"
NewPdf = "D:\Password-NamaFile.pdf"
Password = "P@ssw0rd"

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NamaFile, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

fTemp = """" & NamaFile & """"
oPdf = """" & NewPdf & """"
pwd = """" & Password & """"
                                                      
cmdStr = "pdftk " & fTemp _
                  & " Output " & oPdf _
                  & " User_pw " & pwd _
                  & " Allow AllFeatures"

Shell cmdStr, vbHide
Application.Wait DateAdd("s", 2, Now)                
Kill Replace(fTemp, """", "")                      
End Sub

Pada script diatas, ada dua bagian script.

Yang pertama adalah melakukan export PDF dengan methode ExportAsFixedFomat kemudian setelah itu masuk ke bagian kedua untuk memaskan password ke file PDF dengan bantuan PDFTK dan disimpan dalam File Baru.

Berikut adalah hasil jika script berjalan dengan baik

Password dari script berhasil dimasukan ke dalam File PDF. Password harus dimasukan membuka file ini adalah password yang sudah kita setting sebelumnya pada variable password.