Belajar VBA - Add-in (.xlam), Ribbon UI & Custom Functions
Series/Belajar VBA/Episode 20
Episode 20 of 25

Belajar VBA - Add-in (.xlam), Ribbon UI & Custom Functions

Mengemas kode menjadi produk: membuat add-in .xlam yang bisa dipakai banyak workbook dan diinstal otomatis, membangun custom tab dan tombol ribbon dengan XML customUI, serta memanggil prosedur lintas project dengan Application.Run

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

Sampai episode 19, semua macro hidup di dalam satu workbook — hanya bisa dipakai di file itu. Episode ini mengubah posisi kalian dari "orang yang menulis macro" menjadi "orang yang membuat alat": add-in .xlam yang bisa dipasang sekali dan dipakai oleh semua workbook, plus ribbon custom agar alat itu mudah ditemukan pengguna.

Mengapa ini penting? Di dunia kerja, alat yang baik adalah alat yang dipakai orang lain tanpa bertanya. Add-in mengemas UDF dan macro menjadi satu paket terinstal; ribbon custom memberi tombol yang jelas — dan kombinasi keduanya adalah cara paling profesional mendistribusikan VBA.

Membuat Add-in .xlam

.xlam (Excel Add-In) adalah workbook khusus yang berisi kode/prosedur dan bisa di-load ke semua workbook yang dibuka. Cara membuatnya:

  1. Tulis semua Sub/Function yang ingin dipakai bersama di workbook kosong.
  2. File → Save As → type: Excel Add-In (*.xlam).
  3. Simpan di folder %APPDATA%\Microsoft\AddIns (lokasi default agar mudah diinstal).

Setelah tersimpan, add-in bisa diaktifkan:

  1. File → Options → Add-Ins → pilih Excel Add-insGo.
  2. Centang add-in → OK.

Setelah aktif, semua UDF di dalamnya bisa dipakai di semua workbook — persis seperti fungsi bawaan Excel.

UDF dari Add-in

Function di dalam add-in menjadi formula global:

Modul dalam add-in
Public Function Diskon(harga As Double, persen As Double) As Double
    Diskon = harga * (1 - persen)
End Function
 
Public Function Rp(nilai As Double) As String
    Rp = Format(nilai, "Rp #,##0")
End Function

Begitu add-in aktif, sel mana pun bisa menulis =Diskon(B2; C2) atau =Rp(B2) — tidak peduli workbook mana yang dibuka.

Auto-Install Add-in dari Kode

Add-in bisa diinstal otomatis lewat kode — memudahkan distribusi ke tim:

Instal add-in otomatis
Sub InstalAddIn()
    Dim wb As Workbook
 
    Set wb = Workbooks.Open("C:\vba-dist\alat-laporan.xlam")
    AddIns.Add wb.FullName
    Application.AddIns("alat-laporan").Installed = True
    wb.Close False
 
    Set wb = Nothing
End Sub

AddIns.Add mendaftarkan file sebagai add-in; Installed = True mengaktifkannya. Setelah satu kali jalan, add-in otomatis dimuat di setiap sesi Excel berikutnya.

Tip

Saat mendistribusikan add-in ke tim, kombinasikan dengan dua pelajaran dari episode 16: tandatangani project dengan digital signature dan letakkan di Trusted Location. Kalau tidak, pengguna akan dihujani prompt keamanan setiap membuka Excel.

Ribbon Custom: customUI XML

Ribbon Excel bisa diubah dengan file XML bernama customUI14.xml. Ini format Office Open XML yang memuat definisi tab, group, dan tombol.

customUI14.xml
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="RibbonOnLoad">
  <ribbon>
    <tabs>
      <tab id="tabAlat" label="Alat VBA">
        <group id="grpUtama" label="Tindakan">
          <button id="btnBersihkan"
                  label="Bersihkan Data"
                  imageMso="DeleteTableRows"
                  onAction="OnBersihkan" />
          <button id="btnLaporan"
                  label="Buat Laporan"
                  imageMso="ChartInsert"
                  onAction="OnLaporan" />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

Elemen kunci:

ElemenFungsi
<tab>Tab baru di ribbon
<group>Kelompok tombol dalam satu tab
<button>Tombol dengan label, imageMso, dan onAction
onActionNama prosedur VBA yang dipanggil saat diklik

Menyuntikkan customUI ke File Excel

File .xlsx/.xlsm adalah ZIP. Menambahkan customUI14.xml dilakukan dengan mengedit paket:

Suntik customUI ke file xlsm
mkdir -p /tmp/edits/customUI /tmp/edits/_rels /tmp/edits/docProps
# 1. Ekstrak file workbook
unzip alat.xlsm -d /tmp/edits
# 2. Letakkan XML customUI
cp customUI14.xml /tmp/edits/customUI/customUI14.xml
# 3. Tambahkan relasi ke file utamanya
# 4. Kemas ulang
cd /tmp/edits && zip -r -X ../alat-ribbon.xlsm . -x ".*"

Langkah 3 (relasi) membutuhkan penambahan baris di _rels/.rels. Untuk praktik tercepat, gunakan alat khusus seperti Custom UI Editor (tool gratis dari komunitas) yang menangani penyuntikan dan relasi secara otomatis.

Warning

Meng-edit file .xlsm sebagai ZIP membutuhkan presisi: relasi XML harus benar, jika tidak Excel menolak membuka file atau menganggapnya korup. Untuk serius, pakai Custom UI Editor atau Office-Custom-UI-Editor dari GitHub — jangan lupa uji file yang sudah disunting di Excel sebelum didistribusikan.

Callback onAction di VBA

Setiap onAction harus punya pasangan prosedur VBA dengan signature tertentu:

Callback tombol ribbon
Public Sub OnBersihkan(control As IRibbonControl)
    BersihkanData
End Sub
 
Public Sub OnLaporan(control As IRibbonControl)
    JalankanLaporan
End Sub
 
Public Sub RibbonOnLoad(ribbon As IRibbonUI)
    ' Simpan referensi ribbon untuk pembaruan tombol
End Sub

Perhatikan: prosedur callback harus menerima parameter control As IRibbonControl — signature inilah yang diharapkan Office saat tombol diklik.

Application.Run: Memanggil Prosedur Dinamis

Application.Run memanggil prosedur dengan nama yang ditentukan saat runtime — sangat berguna saat memanggil prosedur lintas add-in atau mengirim argumen dinamis:

Panggil prosedur berdasarkan pilihan
Sub JalankanBerdasarkan(namaProsedur As String)
    Application.Run namaProsedur
End Sub
 
Sub JalankanDenganArgumen()
    Application.Run "HitungDiskon", 100000, 0.1
End Sub

Application.Run juga bisa memanggil prosedur di add-in atau workbook lain dengan menyertakan nama file:

Panggil prosedur di workbook lain
Application.Run "'alat.xlam'!HitungDiskon", 100000, 0.1

Ini menjadi jembatan antar-workbook yang bersih — tanpa Reference manual.

Arsitektur Distribusi yang Profesional

Kombinasi lengkap untuk alat tim:

plaintext
alat-laporan.xlam      ← kode + UDF + callback ribbon
  ├── Modules: logika Sub/Function
  ├── UserForm: formulir input
  └── customUI14.xml    ← tombol ribbon "Alat VBA"

Alurnya: install add-in (sekali) → tab Alat VBA muncul → klik tombol → prosedur berjalan. Pengguna tidak pernah melihat VBE.

Common Pitfalls

KesalahanDampak
.xlam disimpan bukan di folder AddInsTidak muncul di daftar add-in
UDF ditulis di modul worksheet/add-in salahFormula tidak dikenali
Signature onAction tidak cocokTombol ribbon tidak bereaksi
File .xlsm disunting manual dan relasi rusakFile korup
Distribusi tanpa tanda tangan/trusted locationPrompt keamanan di setiap buka

Penutup

Pada episode 20 ini, kalian telah mengemas VBA menjadi alat yang bisa dipakai bersama.

Inti yang harus dibawa pulang:

  • .xlam adalah workbook khusus yang menyediakan UDF dan prosedur untuk semua workbook.
  • Install add-in via Add-Ins dialog atau otomatis dengan AddIns.Add + Installed = True.
  • Ribbon custom dibuat dari customUI14.xml dengan <tab>, <group>, <button> dan onAction.
  • Callback harus menerima control As IRibbonControl.
  • Application.Run memanggil prosedur dinamis, termasuk lintas workbook/add-in.

Di episode 21 selanjutnya kita menyetel performance tuning & best practiceScreenUpdating, Calculation, EnableEvents, array processing, kode modular, naming konsisten, dan Option Explicit sebagai kebiasaan produksi. Sampai jumpa di episode 21!

Belajar VBA - Add-in (.xlam), Ribbon UI & Custom Functions | Belajar VBA