Dalam era digital saat ini, banyak pekerjaan mengharuskan kita untuk berurusan dengan dokumen dalam format PDF.
PDF adalah format yang sangat umum digunakan untuk berbagi informasi, tetapi seringkali kita membutuhkan cara yang efisien untuk menampilkan dan mencetak dokumen-dokumen ini.
Termasuk dengan Visual Basic for Applications (VBA) yang bisa dijadikan alat yang sangat powerfull untuk mencetak dan menampilkan file PDF.
VBA adalah bahasa pemrograman yang kuat yang terintegrasi dalam berbagai aplikasi Microsoft Office, termasuk Excel, Word, dan PowerPoint.
Dengan VBA, kita bisa mengotomatisasi banyak tugas, termasuk manipulasi, pembuatan, dan pencetakan dokumen PDF.
Materi ini sudah saya bahas memalui tutorial video yang bisa dilihat dibawah ini
Artikel kali ini saya akan membahas bagaimana kita dapat menggunakan VBA untuk menampilkan dan mencetak PDF dengan mudah, meningkatkan efisiensi kerja tdan menghemat waktu tentunya.
Dalam artikel ini, saya akan menjelaskan langkah-langkah praktis tentang:
Untuk memudahkan tutorial kali ini, siapkan sebuah userform seperti pada gambar dibawah ini:
Sesuaikan nama control pada Form menjadi seperti dibawah ini, agar nama control pada script yang digunakan sama.
Textbox | TBFile |
Webbrowser | WebBrowser1 |
CommandButton1 | BTBrowse |
CommandButton2 | BTPrint |
Untuk menampilkan file PDF mudahnya disini saya menggunakan Webbrowser selain menggunakan control webbrowser kamu juga bisa menggunakan Library dari adobe, tetapi library ini harus diinstallkan terlebih dahulu, sedangkan webbrowser sudah ada pada bawaan VBA.
Sedangkan untuk memilih file PDF yang akan ditampilkan disini saya gunakan Opendialog agar file bisa dipilih dengan dinamis.
Script pada tombol browse
Private Sub BTBrowse_Click() Dim NamaFile As String Dim HTML As String NamaFile = Application.GetOpenFilename("PDF Files (*.PDF), *.PDF") If Not NamaFile = "False" Then TBFile.Text = NamaFile HTML = "<HTML><BODY><embed src=""" & NamaFile & """ height=""100%"" Width=""100%"" /></body></html>" WebBrowser1.Navigate "about:blank" WebBrowser1.Document.write HTML End If End Sub
Untuk melakukan print atau mencetak File PDF langsung ke Printer kita bisa mengakalinya dengan bantuan Command Shell.
Perintah ini kita jalankan dengan bantuan dari Windows API dari Fungsi yang bernama ShellExecute.
Agar bisa berjalan di Windows 32bit dan 64bit disini saya gunakan sebuah Compiler Directive
Baca juga : Compiler Directives
Simpan Script ini pada Standard Module
#If VBA7 and Win64 Then Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long #Else Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long #End IF
Masih pada Standard Module, buat Subrutine untuk mencetak file dimana Subrutine ini menjalankan API ShellExcute.
Public Sub PrintPDF(NamaFile As String) ShellExecute Application.hwnd, "print", NamaFile, vbNullString, vbNullString, 0 End Sub
Terakhir tinggal gunakan script pada tombol Print yang ada pada Userform. Pada tombol BTPrint tambahkan script dibawah ini.
Private Sub BTPrint_Click() If Not Len(TBFile.Text) = 0 Then PrintPDF TBFile.Text End If End Sub
Len digunakan untuk mengecek panjang karakter yang ada pada textbox yang bisa diartikan apakah textbox TbFile kosong atau ada isinya. Selanjutnya jalankan printah PrintPDF dan NamaFile.
File Download