VBA Excel untuk Pemula: Dasar Coding di Spreadsheet
TL;DR
VBA (Visual Basic for Applications) adalah bahasa pemrograman bawaan Excel yang dipakai buat otomatisin kerjaan yang nggak bisa dihandle rumus biasa. Kamu buka editornya pakai Alt+F11 dan nulis kode di dalam blok Sub sampai End Sub. Tiga konsep yang bikin VBA berguna: variabel buat nyimpen nilai, If buat ngambil keputusan, dan loop buat ngulang kerjaan ribuan kali.
VBA (Visual Basic for Applications) adalah bahasa pemrograman bawaan Excel yang dipakai buat otomatisin kerjaan yang nggak bisa dihandle rumus biasa.
Rumus Excel jago ngitung. Tapi rumus nggak bisa bikin keputusan lintas file, nggak bisa ngulang proses 5.000 kali sambil ganti kondisi, dan nggak bisa kirim email.
VBA bisa.
Kalau kamu udah pernah rekam macro, kamu sebenernya udah pernah bikin kode VBA. Bedanya, sekarang kamu yang nulis, bukan Excel yang nebak.
Apa itu VBA di Excel?
VBA adalah bahasa pemrograman yang ditanam di dalam Excel, Word, dan PowerPoint. Kode VBA tinggal di dalam file Excel kamu, jalan pas dipanggil, dan bisa nyentuh apa aja: sel, sheet, file lain, bahkan Outlook.
Kode VBA selalu dibungkus dalam blok yang namanya Sub:
Sub HalloDunia()
MsgBox "Halo, ini kode VBA pertama kamu"
End Sub
Sub nandain awal, End Sub nandain akhir. Nama di antara Sub dan tanda kurung itu nama macronya. MsgBox nampilin kotak pesan.
Gimana cara buka VBA Editor?
Tekan Alt + F11. Jendela baru kebuka, namanya Visual Basic Editor.
Buat nulis kode pertama:
- Di panel kiri (Project Explorer), klik kanan nama file kamu
- Pilih Insert → Module
- Area putih di kanan kebuka. Di situ kamu ngetik.
- Ketik kode di atas, terus tekan F5 buat jalanin
Kalau kotak pesan muncul, kamu resmi udah nulis kode. Serius, segitu doang.
Ingat: file yang ada VBA-nya wajib disimpan sebagai .xlsm. Format .xlsx bakal buang semua kodenya diam-diam.
Gimana cara pakai variabel di VBA?
Variabel itu wadah buat nyimpen nilai sementara. Kamu deklarasiin pakai Dim.
Sub HitungTotal()
Dim total As Long
Dim namaToko As String
total = 1500000
namaToko = "Toko Berkah"
MsgBox namaToko & " punya omzet Rp " & Format(total, "#,##0")
End Sub
Tipe data yang paling sering kepakai:
Long— bilangan bulat, sampai 2 miliar. Pakai ini buat nomor baris.Double— bilangan desimal, buat harga dan persentase.String— teks.Boolean— True atau False.Range— kumpulan sel. Ini object, jadi butuhSet.
Object butuh Set, nilai biasa nggak:
Dim ws As Worksheet
Set ws = Sheets("Data") ' object, wajib Set
Dim baris As Long
baris = 5 ' angka biasa, nggak pakai Set
Lupa Set di object adalah penyebab error "Object required" nomor satu buat pemula.
Satu kebiasaan yang bikin hidup kamu lebih tenang: tulis Option Explicit di baris paling atas modul. Itu maksa VBA nolak variabel yang belum dideklarasiin, jadi salah ketik nama variabel langsung ketahuan.
Gimana cara bikin VBA ngambil keputusan?
Pakai If. Strukturnya mirip rumus IF di Excel, tapi lebih longgar.
Sub CekTarget()
Dim omzet As Long
omzet = Range("B2").Value
If omzet >= 10000000 Then
Range("C2").Value = "Tercapai"
Range("C2").Interior.Color = RGB(200, 255, 200)
ElseIf omzet >= 7000000 Then
Range("C2").Value = "Hampir"
Else
Range("C2").Value = "Di bawah target"
Range("C2").Interior.Color = RGB(255, 200, 200)
End If
End Sub
Yang rumus IF nggak bisa lakuin tapi VBA bisa: ngewarnain sel, ngirim email, dan nyimpen file. IF cuma bisa ngasih nilai balik.
Gimana cara ngulang proses ribuan kali?
Ini alasan utama orang belajar VBA. Loop.
Contoh: kasih status ke 5.000 baris berdasarkan omzetnya.
Sub StatusSemuaBaris()
Dim barisAkhir As Long
Dim i As Long
' cari baris terakhir yang ada isinya
barisAkhir = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To barisAkhir
If Cells(i, 2).Value >= 10000000 Then
Cells(i, 3).Value = "Tercapai"
Else
Cells(i, 3).Value = "Belum"
End If
Next i
MsgBox "Selesai. " & (barisAkhir - 1) & " baris diproses."
End Sub
Baris Cells(Rows.Count, 1).End(xlUp).Row itu trik yang bakal kamu pakai terus. Artinya: turun ke baris paling bawah kolom A, terus naik sampai nemu sel terakhir yang ada isinya. Ini bikin kodenya jalan walau jumlah datanya berubah tiap bulan.
Kalau kamu hardcode For i = 2 To 5000, kode kamu bakal salah begitu datanya jadi 6.200 baris.
Contoh kasus: rekap 47 file cabang toko_berkah
Tiap awal bulan, tim ops toko_berkah nerima 47 file Excel, satu per cabang. Tugasnya: buka semua, ambil sheet "Ringkasan", salin baris totalnya ke satu file rekap.
Manual: buka file, Ctrl+C, pindah file, Ctrl+V, tutup. Kali 47. Sekitar 35 menit, dan tiap bulan ada aja 1 sampai 2 file yang kelewat atau ketuker.
Sub RekapSemuaCabang()
Dim folder As String
Dim namaFile As String
Dim wbSumber As Workbook
Dim wsRekap As Worksheet
Dim barisTulis As Long
folder = "C:\Laporan\Cabang\"
Set wsRekap = ThisWorkbook.Sheets("Rekap")
barisTulis = 2
Application.ScreenUpdating = False
namaFile = Dir(folder & "*.xlsx")
Do While namaFile <> ""
Set wbSumber = Workbooks.Open(folder & namaFile)
wsRekap.Cells(barisTulis, 1).Value = namaFile
wsRekap.Cells(barisTulis, 2).Value = _
wbSumber.Sheets("Ringkasan").Range("B10").Value
wbSumber.Close SaveChanges:=False
barisTulis = barisTulis + 1
namaFile = Dir
Loop
Application.ScreenUpdating = True
MsgBox (barisTulis - 2) & " cabang berhasil direkap."
End Sub
Hasilnya: 47 file kebaca dalam 11 detik.
Application.ScreenUpdating = False itu satu baris yang bikin kode kamu jauh lebih cepat. Tanpa itu, Excel gambar ulang layar tiap kali file kebuka, dan prosesnya bisa 4 sampai 5 kali lebih lama.
Fungsi Dir ngasih nama file berikutnya di folder. Tiap kali dipanggil tanpa argumen, dia lanjut ke file selanjutnya sampai habis.
Kesalahan umum waktu belajar VBA
Nggak pakai Option Explicit. Tanpa itu, salah ketik totl padahal maksudnya total nggak bikin error. VBA cuma bikin variabel baru yang isinya kosong, dan hasilnya salah tanpa peringatan.
Pakai Select dan Activate di mana-mana. Macro rekaman penuh sama Range("A1").Select. Itu lambat dan rapuh. Tulis langsung Range("A1").Value = 100, tanpa Select.
Hardcode jumlah baris. Data kamu bakal tumbuh. Selalu cari baris terakhir dengan End(xlUp).
Lupa Set buat object. Range, Worksheet, dan Workbook wajib pakai Set. Angka dan teks nggak.
Nggak pakai F8 waktu debugging. Tekan F8 buat jalanin kode baris per baris. Arahkan kursor ke variabel buat lihat isinya. Ini cara tercepat nemu di mana kodenya belok.
Referensi lengkap semua object dan method-nya ada di dokumentasi VBA Excel resmi Microsoft.
FAQ
VBA masih relevan di 2026 nggak?
Masih. Jutaan file Excel di kantor-kantor Indonesia jalan di atas VBA, dan nggak ada yang mau nulis ulang. Buat kerjaan baru, Power Query sering lebih cocok. Tapi buat file warisan, VBA tetap kepakai.
Belajar VBA butuh berapa lama?
Buat bisa baca dan ngedit macro rekaman, sekitar seminggu. Buat nulis dari nol dengan variabel, If, dan loop, sekitar satu sampai dua bulan kalau kamu latihan di kerjaan nyata.
Bedanya VBA sama macro apa?
Macro adalah rekaman langkah yang hasilnya berupa kode VBA. VBA adalah bahasanya. Macro rekaman cuma bisa ngulang persis apa yang kamu lakuin, VBA yang kamu tulis bisa pakai kondisi dan perulangan.
Kenapa kode VBA aku error Object required?
Biasanya gara-gara lupa Set buat object. Kalau isinya Range atau Worksheet, wajib pakai Set. Kalau isinya angka atau teks, tulis langsung tanpa Set.
VBA bisa dipakai di Excel Mac atau Google Sheets?
Excel Mac dukung VBA, tapi beberapa fitur Windows nggak jalan. Google Sheets nggak dukung VBA sama sekali, dia pakai Apps Script yang berbasis JavaScript.
Yang perlu kamu inget
Alt+F11 buat masuk editor, Sub sampai End Sub buat bungkus kode, F5 buat jalanin.
Variabel, If, dan loop. Tiga ini yang bikin VBA jauh lebih kuat dari macro rekaman.
Cari baris terakhir pakai End(xlUp), jangan pernah hardcode jumlah barisnya.
Cara belajar tercepat: rekam macro dari kerjaan kamu sendiri, buka kodenya di Alt+F11, dan mulai ngedit satu baris. Kalau kerjaan kamu lebih ke ngolah data gede, cek juga Power Pivot, soalnya buat itu VBA bukan alat yang paling pas.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel Terkait
Template Laporan Penjualan Excel: Struktur yang Dipakai Analis
Template laporan penjualan yang bener cuma butuh 3 sheet. Yang bikin laporan orang rusak biasanya karena data mentah dan hasil dicampur di satu tempat.
Cara Menghubungkan Google Sheets ke Looker Studio
Nyambungin Google Sheets ke Looker Studio cuma butuh 5 menit. Yang bikin lama itu datanya belum rapi. Ini urutan yang bener.
Cara Share Google Sheets dengan Aman: Permission & Protected Range
Panduan step by step share Google Sheets tanpa bikin rumus kehapus atau data gaji bocor — dari level permission, protected range, sampai audit siapa yang buka.