Pada materi sebelumnya kamu sudah belajar bagaimana melakukan PrintOut dan juga PrintPreview.
printOut jika dijalankan maka proses Print akan dilakukan dan di cetak pada Print Active atau Default Printer.
Apakah VBA juga bisa digunakan untuk memilih dan menentukan Printer yang akan digunakan ?
VBA memiliki kemampuan untuk mengatur berbagai pengaturan printer, seperti jenis kertas, jumlah dokumen yang akan dicetak, kualitas cetakan, serta parameter lainnya.
Dengan VBA, pengguna dapat menciptakan script atau rutinitas khusus untuk mengelola printer dengan lebih efisien.
Tak hanya itu, memilih printer dengan menggunakan VBA juga membuka peluang untuk menciptakan aplikasi khusus yang terintegrasi dengan printer.
Ini memungkinkan penyesuaian dan optimisasi proses cetak sesuai dengan kebutuhan pengguna, menghemat waktu dan upaya yang diperlukan.
Pada materi kali ini saya akan bahas 2 cara untuk menentukan printer dengan VBA, yang relevan dengan kasus-kasus yang ditemui.
Cara pertama adalah dengan pemilihan printer dinamis, disini pengguna bisa menentukan jenis printer yang akan digunakan dengan mengunakan VBA.
Untuk pemilihan printer secara dinamis bisa dilakukan dengan menampilkan dialog Print sebelum melakukan cetak.
untuk scriptnya bisa ditulis seperti berikut ini.
Application.Dialogs(xlDialogPrinterSetup).Show
Jika script ini dijalankan, maka VBA akan memunculkan dialog Print Setup sehingga Pengguna memilih dan menentukan Printer yang akan digunakan.
Cara kedua ini pengguna tidak diberikan pilihan untuk memilih printer.
Tetapi printer langsung di tentukan oleh programmer.
Misalnya jika saya klik tombol Print di Sheet1 maka Printer yang digunakan adalah Printer Cannon, sedangkan jika saya klik tombol Print di Sheet3 maka printer yang digunakan adalah Printer Epson.
Untuk kasus seperti ini programmer bisa langsung menentukan Nama Printer dalam Script.
Sehinga ini bisa menghemat waktu tanpa perlu memilih Printer setiap melakukan Print.
Langkah pertama untuk menentukan Printer secara langsung adalah dengan mengecek nama-nama printer yang ada di komputer.
Ini penting agar tidak salah tulis atau typo nama printer.
untuk mengecek nama printer yang ada di komputer bisa dengan menuliskan script dibawah ini.
Sub CekNamaPrinter() Dim Obj As Object Dim OPrinter As Object Set Obj = CreateObject("WScript.Network") Set OPrinter = Obj.EnumPrinterConnections For i = 1 To OPrinter.Count Step 2 Debug.Print OPrinter(i) Next End Sub
Periksan nama nama printer yang muncul di Immediate
Agar tidak terjadi perubahan pada printer default yang saat ini digunakan, catat nama default printer agar ketika aplikasi tidak digunakan bagian ini tidak berubah.
Misalnya default printernya adalah : DeskJet Ink Advantage 2335
ini bisa dibuat konstanta dengan script
Const PrinterDef as String = "DeskJet Ink Advantage 2335"
Kembali ke kasus awal, Misalnya jika di Sheet1 maka gunakan Printer Cannon, sedangkan jika saya klik tombol Print di Sheet3 digunakan Printer Epson.
Maka script di Sheet1 bisa ditulis seperti dibawah ini
Sub PrintSheet1() Dim Obj As Object Dim OPrinter As Object Set Obj = CreateObject("WScript.Network") Obj.setdefaultprinter "Epson MP110 Printer" Sheet1.PrintOut Obj.setdefaultprinter PrinterDef End Sub
Selanjutnya untuk script di Sheet3 bisa menggunakan script seperti dibawah ini
Sub PrintSheet1() Dim Obj As Object Dim OPrinter As Object Set Obj = CreateObject("WScript.Network") Obj.setdefaultprinter "Canon MP280 series Printer" Sheet1.PrintOut Obj.setdefaultprinter PrinterDef End Sub
Pemilihan printer ini bisa disesuaikan dengan kebutuhan, bisa di set langsung di script atau dibuat dinamis.
Jika dinamis pengguna bisa bebas menentukan akan menggunakan Printer apa.