Dasar VBA Macro Excel: perbedaan Sub dan Function
Di VBA Excel, dua blok kode yang paling sering digunakan adalah Sub dan Function. Keduanya terlihat mirip, tetapi tujuan penggunaannya berbeda: Sub dipakai untuk menjalankan aksi, sedangkan Function dipakai untuk mengembalikan nilai hasil perhitungan yang nantinya bisa dipakai kembali.
Kapan memakai Sub
Gunakan Sub saat Anda ingin mengeksekusi rangkaian perintah tanpa perlu mengembalikan hasil ke sel. Contohnya adalah menampilkan pesan peringatan, membersihkan isi kolom tertentu, mewarnai sel, atau menyalin data ke sheet lain.
Sub dapat dijalankan lewat tombol Run, menu Macro, shortcut keyboard, tombol form, atau dipanggil dari prosedur lain. Karena itu, Sub sering menjadi dasar automasi kerja di Excel.
Kapan memakai Function
Gunakan Function ketika Anda memerlukan nilai hasil yang dapat dipakai di formula worksheet atau prosedur lain. Contohnya adalah menghitung diskon khusus, membulatkan nilai dengan aturan tertentu, atau membuat logika penilaian otomatis.
Function lebih tepat untuk logika perhitungan yang ingin dipakai berulang dengan input berbeda. Dengan begitu, rumus di worksheet bisa menjadi lebih singkat dan lebih mudah dipahami.
Hal dasar yang perlu diperhatikan
Penamaan prosedur di VBA tidak boleh sembarangan. Nama harus diawali huruf, tidak boleh memakai spasi, dan sebaiknya tidak memakai simbol yang membuat kode sulit dibaca. Nama yang baik biasanya menggambarkan tugas macro, misalnya `CetakLaporan` atau `HitungDiskon`.
Selain itu, biasakan memisahkan macro aksi dan fungsi perhitungan. Kebiasaan ini membuat workbook lebih rapi dan jauh lebih mudah diperbaiki jika nanti logikanya berkembang.
Contoh alur yang mudah dipahami
Bayangkan Anda punya tombol `Proses Data`. Saat tombol ditekan, Sub akan menjalankan serangkaian aksi seperti membersihkan data lama, menyalin input baru, lalu memanggil Function untuk menghitung hasil tertentu.
Dengan pola seperti ini, pekerjaan pengguna tetap sederhana, tetapi kode di belakang layar tetap terstruktur. Ini penting jika workbook dipakai berulang atau dipakai oleh banyak orang.
Contoh kode yang mudah dipahami
Bagian ini penting agar pembaca tidak hanya tahu teori Sub dan Function, tetapi juga melihat bentuk kodenya langsung.
Contoh Sub sederhana
Sub ini hanya menjalankan aksi, yaitu menampilkan pesan peringatan.
Sub Peringatan()
MsgBox "Hati-hati"
End Sub
Saat dijalankan, Excel akan menampilkan kotak pesan. Ini contoh paling dasar dari macro aksi.
Contoh Function sederhana
Function ini menerima dua angka lalu mengembalikan hasil penjumlahannya.
Function JumlahNilai(a As Double, b As Double) As Double
JumlahNilai = a + b
End Function
Function seperti ini bisa dipanggil dari worksheet, misalnya `=JumlahNilai(A1,B1)`.
Contoh Sub untuk format sel
Macro juga sering dipakai untuk menjalankan aksi berulang, misalnya memberi warna pada range tertentu.
Sub FormatHeader()
Range("A1:D1").Font.Bold = True
Range("A1:D1").Interior.Color = RGB(220,230,241)
End Sub
Dengan Sub seperti ini, pengguna tinggal klik tombol dan format langsung diterapkan otomatis.
Contoh Function untuk logika nilai
Function juga bisa dipakai untuk membuat logika penilaian otomatis.
Function PredikatNilai(n As Double) As String
If n >= 80 Then
PredikatNilai = "A"
Else
PredikatNilai = "B"
End If
End Function
Fungsi ini cocok saat workbook perlu memberi hasil teks berdasarkan nilai angka tertentu.
Poin praktis yang perlu diingat
Bagian ini merangkum inti VBA dengan bahasa yang lebih ringan agar pembaca cepat memahami perbedaannya.
Sub
Menjalankan perintah atau aksi.
Function
Mengembalikan nilai hasil perhitungan.
Macro Trigger
Bisa lewat tombol, shortcut, atau menu.
Jika ingin mulai belajar VBA dengan rapi, pahami dulu kapan kode sebaiknya dijadikan Sub dan kapan lebih tepat dijadikan Function.