VBA Excel untuk Pemula: Dasar Coding di Spreadsheet
Blog/Tutorial Excel & Sheets/VBA Excel untuk Pemula: Dasar Coding di Spreadsheet

VBA Excel untuk Pemula: Dasar Coding di Spreadsheet

BimaBima
·17 April 2026·12 menit baca

Penulis

Bima

Bima

Founder & Data Professional

Bagikan

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:

  1. Di panel kiri (Project Explorer), klik kanan nama file kamu
  2. Pilih Insert → Module
  3. Area putih di kanan kebuka. Di situ kamu ngetik.
  4. 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 butuh Set.

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.

Coba Langsung

Mau praktek langsung? Mulai latihan SQL gratis

Latihan interaktif, langsung di browser.

Buka NgulikSQL →
Bagikan:
Bima
Ditulis oleh

Bima

Founder & Data Professional

Founder Ngulik Data. Passionate about making data analysis accessible for everyone.

Artikel Terkait

Template Laporan Penjualan Excel: Struktur yang Dipakai Analis
Tutorial Excel & Sheets
11 Juli 2026•10 menit baca

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.

BimaBima
Cara Menghubungkan Google Sheets ke Looker Studio
Tutorial Excel & Sheets
8 Juli 2026•10 menit baca

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.

BimaBima
Cara Share Google Sheets dengan Aman: Permission & Protected Range
Tutorial Excel & Sheets
5 Juli 2026•9 menit baca

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.

BimaBima
Kembali ke Blog
Ngulik Data logoNgulik Data

Platform edukasi data lengkap untuk professionals Indonesia. Belajar SQL, Data Analysis, dan lebih banyak lagi dengan praktek langsung dan feedback real-time.

Copyright © 2026 - All rights reserved

LINKS
SupportPricingDatasetBlogAffiliates
LEGAL
Terms of servicesPrivacy policy
Ngulik Data
DatasetLeaderboardBlogStore