Saat pertama kali belajar VBA, banyak pemula menulis seluruh kode di dalam satu prosedur (Sub). Pendekatan ini memang masih dapat digunakan untuk makro sederhana.
Namun, ketika program mulai bertambah besar, satu prosedur yang berisi ratusan baris kode akan sulit dipahami, diuji, maupun diperbaiki.
Karena itu, salah satu kebiasaan yang perlu dibangun sejak awal adalah membagi program menjadi beberapa prosedur yang masing-masing memiliki tugas tertentu. Dengan cara ini, kode menjadi lebih rapi, mudah digunakan kembali, dan lebih mudah dipelihara.
Apa Itu Sub Procedure?
Sub Procedure (atau sering disebut Sub) adalah sekumpulan perintah VBA yang dikelompokkan menjadi satu prosedur untuk menjalankan tugas tertentu.
Berbeda dengan Function, sebuah Sub tidak mengembalikan nilai. Prosedur ini hanya menjalankan serangkaian instruksi ketika dipanggil.
Sintaks dasarnya adalah sebagai berikut.
Sub NamaProsedur()
'Kode VBA
End Sub
Contoh:
Sub Salam()
MsgBox "Selamat Belajar VBA Excel"
End Sub
Ketika prosedur tersebut dijalankan, VBA akan menampilkan sebuah kotak pesan.
Aturan Penamaan Sub
Nama prosedur sebaiknya mengikuti beberapa aturan berikut.
-
Diawali dengan huruf.
-
Tidak mengandung spasi.
-
Tidak menggunakan kata kunci VBA.
-
Gunakan nama yang menggambarkan fungsi prosedur.
Contoh yang baik:
Sub HitungTotal()
Sub CetakLaporan()
Sub FormatHeader()
Contoh yang kurang baik:
Sub A()
Sub Tes1()
Sub SubBaru()
Nama yang jelas akan memudahkan Anda memahami isi program beberapa bulan kemudian.
Menjalankan Sub Procedure
Sebuah prosedur dapat dijalankan dengan beberapa cara.
Misalnya terdapat prosedur berikut.
Sub TampilkanPesan()
MsgBox "Halo"
End Sub
Anda dapat menjalankannya melalui:
-
tombol Run pada VBA Editor,
-
tombol F5,
-
tombol pada worksheet,
-
atau memanggilnya dari prosedur lain.
Memanggil Sub dari Sub Lain
Salah satu kelebihan menggunakan prosedur adalah dapat dipanggil kembali dari prosedur lain.
Sub Salam()
MsgBox "Selamat Datang"
End Sub
Sub Mulai()
Salam
End Sub
Ketika prosedur Mulai dijalankan, prosedur Salam akan dieksekusi.
Penulisan tersebut membuat kode lebih modular dan menghindari pengulangan.
Menggunakan Kata Kunci Call
Selain menuliskan nama prosedur secara langsung, Anda juga dapat menggunakan kata kunci Call.
Sub Mulai()
Call Salam
End Sub
Kedua cara tersebut menghasilkan hasil yang sama.
Namun, pada VBA modern, pemanggilan langsung tanpa Call lebih sering digunakan karena lebih ringkas.
Mengatur Program Menjadi Beberapa Prosedur
Perhatikan contoh berikut.
Sub ProsesData()
BersihkanData
HitungTotal
FormatLaporan
End Sub
Masing-masing prosedur memiliki tugas yang berbeda.
Sub BersihkanData()
Range("A2:D100").ClearContents
End Sub
Sub HitungTotal()
Range("E2").Formula = "=SUM(D2:D100)"
End Sub
Sub FormatLaporan()
Range("A1:E1").Font.Bold = True
End Sub
Pendekatan seperti ini jauh lebih mudah dipahami dibandingkan menulis seluruh kode dalam satu prosedur yang sangat panjang.
Public dan Private Sub
Secara bawaan, sebuah prosedur bersifat Public.
Public Sub Cetak()
End Sub
Artinya, prosedur tersebut dapat dipanggil dari modul lain.
Sebaliknya,
Private Sub Cetak()
End Sub
hanya dapat digunakan di dalam modul tempat prosedur tersebut dibuat.
Gunakan Private jika prosedur hanya berfungsi sebagai prosedur pendukung.
Studi Kasus
Misalkan Anda ingin membuat laporan penjualan.
Daripada menulis semua kode dalam satu prosedur, Anda dapat membaginya seperti berikut.
Sub BuatLaporan()
AmbilData
HitungRingkasan
FormatLaporan
MsgBox "Laporan selesai dibuat."
End Sub
Dengan cara ini, setiap prosedur memiliki tanggung jawab yang jelas sehingga program lebih mudah dikembangkan di kemudian hari.
Kesalahan yang Sering Terjadi
Memberi Nama yang Tidak Jelas
Kurang baik:
Sub A()
Lebih baik:
Sub ImportData()
Menulis Semua Kode dalam Satu Sub
Prosedur yang terlalu panjang akan sulit dipelajari dan diperbaiki.
Pisahkan program menjadi beberapa prosedur kecil yang saling bekerja sama.
Menggunakan Public untuk Semua Prosedur
Tidak semua prosedur harus dapat diakses dari modul lain.
Gunakan Private jika prosedur hanya dipakai secara internal.
Tips Praktis
💡 Buat satu prosedur untuk satu tugas tertentu.
💡 Gunakan nama prosedur yang mudah dipahami.
💡 Pisahkan proses input, pengolahan data, dan format laporan ke dalam prosedur yang berbeda.
💡 Gunakan Private Sub untuk prosedur pendukung.
💡 Hindari prosedur yang berisi ratusan baris kode.
Ringkasan
| Pernyataan | Fungsi |
|---|---|
Sub...End Sub |
Membuat prosedur |
Public Sub |
Prosedur dapat dipanggil dari modul lain |
Private Sub |
Prosedur hanya dapat dipanggil dalam modul yang sama |
Call |
Memanggil prosedur (opsional) |
Kesimpulan
Sub Procedure merupakan dasar penting dalam membangun aplikasi VBA yang rapi dan mudah dikelola. Dengan membagi program menjadi beberapa prosedur yang memiliki tanggung jawab masing-masing, Anda dapat mengurangi duplikasi kode, mempermudah proses pengujian, serta membuat program lebih mudah dikembangkan di masa mendatang. Semakin kompleks aplikasi yang dibuat, semakin besar manfaat dari penerapan konsep ini.
