Skip to content Skip to sidebar Skip to footer

Cara Membuat Barisan Sel Tidak Bisa Diprint dalam Sheet Excel dengan Macro VBA

Tip berikut ini menggunakan event Workbook_BeforePrint yang memerintahkan Excel agar tidak mencetak ke dalam printer suatu barisan sel tertentu yang berisi data rahasia yang ada dalam suatu worksheet.

Ikuti langkah-langkah berikut ini untuk menyusun kode macro:

1. Buka Sheet1. Anda bisa membuat contoh data pada barisan sel A1:F15 untuk mempertunjukkan tutorial ini dengan cara menyorot barisan sel A1:F15 lalu mengetik kata Konten dan tekan tombol Ctrl+Enter secara bersamaan.

2. Buka VBE dengan cara menekan Alt+F11, lalu tekan Ctrl+R untuk memastikan jendela Project Explorer membuka.

3. Pada Project Explorer klik folder dengan nama Microsoft Excel Objects.

4. Dalam daftar di bawah Microsoft Excel Objects terdapat objek workbook dengan nama ThisWorkbook. Dobel-klik This Workbook untuk memunculkan module workbook.

5. Pada kotak daftar pilihan Object pilih Workbook.

6. Pada kotak daftar pilihan Procedure pilih BeforePrint.

7. Tepat di bawah Private Sub Workbook_BeforePrint tetapkan Sheet1 sebagai sheet yang menyimpan data rahasia dan sheet lainnya tetap bisa diprint:

If ActiveSheet.Name <> "Sheet1" Then Exit Sub

8. Gunakan argumen Cancel untuk menghentikan proses print:

Cancel = True

9. Matikan event terlebih dahulu karena akan dilakukan proses print:

Application.EnableEvents = False

10. Data rahasia letaknya di barisan sel A1:D10, ganti formatnya sementara dengan tiga tanda titik koma yang akan membuat sel-sel menyembunyikan konten di dalamnya.

Range("A1:D10").NumberFormat = ";;;"

11. Mulai menjalankan perintah PrintOut, kalau mau, Anda juga bisa menggunakan metode PrintPreview pada garis kode ini supaya lebih menghemat kertas dan tinta printer:

ActiveSheet.PrintOut

12. Kembalikan format barisan sel berisi data rahasia agar kembali terlihat menjadi format General setelah print job dimuat:

Range("A1:D10").NumberFormat = "General"

13. Hidupkan kembali event, pada titik ini print job dijalankan:

Application.EnableEvents = True

14. Kode lengkapnya menjadi sebagai berikut:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name <> "Sheet1" Then Exit Sub
Cancel = True
Application.EnableEvents = False
Range("A1:D10").NumberFormat = ";;;"
ActiveSheet.PrintOut
Range("A1:D10").NumberFormat = "General"
Application.EnableEvents = True
End Sub

15. Kembali ke tampilan worksheet dengan cara menekan Alt+Q lalu uji coba kode yang telah Anda buat untuk mencetak Sheet1.

Itulah pembahasan mengenai cara membuat barisan sel tertentu tidak bisa diprint dalam sheet Excel, selamat mempraktikkan dan semoga bermanfaat.