Memilih dan Menentukan Printer

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.

Pemilihan Printer Dinamis

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.

Menentukan Printer (Static)

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.

  • Cek Nama Printer

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

  • Cek Printer Default

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"
  • Eksekusi

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.

Leave a Reply

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

Chat WhatsApp
WhatsApp