Salah satu fitur yang sering digunakan dan sangat berguna dalam meningkatkan fungsionalitas Excel dengan mengunakan Ribbon adalah ComboBox.
Dengan comboBox memungkinkan pengguna untuk membuat antarmuka yang lebih interaktif dan dinamis, memfasilitasi pengelolaan data dengan lebih baik.
ComboBox di Ribbon Excel memberikan keleluasaan kepada pengguna untuk memilih dari daftar opsi yang telah ditentukan, menyederhanakan navigasi dan pengoperasian lembar kerja Excel.
Dalam materi kali ini, saya akan membahas secara mendalam tentang penggunaan ComboBox di Ribbon Excel.
Dalam script yang sederhana sintaksis combobox bisa ditulis seperti berikut ini
<comboBox id="comboBox" label="Combo Box"> <item id="item1" label="Item 1" /> <item id="item2" label="Item 2" /> <item id="item3" label="Item 3" /> </comboBox>
Pada combobox juga memiliki Property dan juga Callback yang bisa diguakan. Berikut ini beberapa properti dan Callback yang tedapat pada combobox
enabled | berisi “true” | “false” |
id | id Combobox |
idMso | Combobox bawaan Office |
idQ | id Qualifier |
image | (Image) |
imageMso | (OfficeImageId) |
insertAfterMso | |
insertAfterQ | |
insertBeforeMso | |
insertBeforeQ | |
invalidContentOnDrop | |
item | |
keytip | (KeyTip) |
label | (Label) |
maxLength | 1 to 1024 maximum length of entry |
screentip | Menampilkan Screentips |
showImage | Menampilkan Gambar “true” | “false” |
showItemImage | Menampilkan Item Image “true” | “false” |
showLabel | Menampilkan Label “true” | “false” |
size | ukuran combobox “normal” atau “large” |
sizeString | Pajang Area Combobox “AAAAAAAAAAAAAA” |
supertip | (SuperTip) |
tag | (Tag) |
visible | Menampilkan Combobox “true” | “false” |
onChange | getItemSupertip |
getEnabled | getKeytip |
getImage | getLabel |
getImageMso | getScreentip |
getItemCount | getShowImage |
getItemID | getShowLabel |
getItemImage | getSupertip |
getItemLabel | getText |
getItemScreentip | getVisible |
Untuk mengisi Item kedalam Combobox bisa dengan 2 cara,
Untuk mengisi combobox secara langsung bisa dengan menambahkan Item kedalam combobox, tambahkan juga item ID dan juga Item Label.
Untuk contoh XML bisa dilihat dibawah ini.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch = "false" > <tabs> <tab id = "customTab" insertBeforeMso = "TabHome" label= "Custom Combobox" > <group id = "Primary_Key" label = "vba.co.id" > <comboBox id = "comboBox1" label= "Pilih Bulan" onChange="bulan_OnChange" > <item id = "item01" label = "Januari" /> <item id = "item02" label = "Februari" /> <item id = "item03" label = "Maret" /> <item id = "item04" label = "April" /> <item id = "item05" label = "Mei" /> <item id = "item06" label = "Juni" /> <item id = "item07" label = "Juli" /> <item id = "item08" label = "Agustus" /> <item id = "item09" label = "September" /> <item id = "item10" label = "Oktober" /> <item id = "item11" label = "November" /> <item id = "item12" label = "Desember" /> </comboBox> </group> </tab> </tabs> </ribbon> </customUI>
Dan hasilnya akan terlihat seperti ini
Cara kedua untuk mengiisi item di Combobox melalui data yang berada di Worksheet.
Misalnya data yang akan dimasukan kedalam combobox berada di sheet 1 dari Baris 2 sampai baris 13, seperti yang terlihat pada gambar dibawah ini.
Untuk mengisi Data diatas kedalam Combobox Ribbon, bisa menggunakan sebuah Callback.
Sama seperti cara manual tadi, sebuah combobox memerlukan sebuah item ID dan juga Item Label. Sehingga callback yang digunakan diantaranya adalah GetItemID
dan juga GetItemLabel
.
Selain 2 Callback tersebut, masih diperlukan 1 callback lagi yang bernama getItemCount. Callback ini untuk menentukan berapa kali ItemID dan juga ItemLabel di Looping.
Contoh scriptnya bisa dibuat seperti dibawah ini
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Initialize"> <ribbon startFromScratch = "false" > <tabs> <tab id = "customTab" insertBeforeMso = "TabHome" label= "Custom Combobox" > <group id = "gCombo" label = "vba.co.id" > <comboBox id = "comboBox1" label= "Pilih Bulan" onChange="bulan_OnChange" getItemCount="Combo1_getItemCount" getItemID="Combo1_getItemID" getItemLabel="Combo1_getItemLabel" > </comboBox> </group> </tab> </tabs> </ribbon> </customUI>
Setelah itu didalam modul bisa tambahkan script VBA seperti dibawah ini
Dim myRibbon As IRibbonUI Sub Initialize(ribbon As IRibbonUI) Set myRibbon = ribbon End Sub Sub Combo1_getItemCount(control As IRibbonControl, ByRef returnedVal) returnedVal = 12 End Sub Public Sub Combo1_getItemID(control As IRibbonControl, index As Integer, ByRef id) id = Sheet1.Cells(index + 2, 1).Value End Sub Sub Combo1_getItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal) returnedVal = Sheet1.Cells(index + 2, 2).Value End Sub
Dan combobx berhasil ditambahkan
Untuk menambahkan Aksi ketika memilik Item didalam combobox, kita bisa mengunakan Callback OnChange.
Buat sebuah procedure sesuai dengan nama yang terdapat pada onChange. Pada contoh diatas, onChange saya berinama bulan_OnChange
.
Sehingga scriptnya bisa dibuat seperti ini
Sub bulan_onChange(control As IRibbonControl, text As String) MsgBox "Kamu memilih " & text End Sub
Msgbox ini hanya sebuah contoh, didalam onChange ini bisa diisi dengan aksi apapun sesuai dengan kebutuhan ketika Item berhasil dipilih.
Download File