Ribbon office sampai saat tulisan ini dibuat tidak menyediakan spin button bawaan. Untuk Membuat spin button pada Ribbon Office bisa menggunakan sedikit trik agar terlihat benar benar seperti Spin button.
Disini saya menggunakan 2 buah Button untuk spin button next dan Previos dan juga 1 buah Editbox control untuk menampilkan hasil nilai dari spin button.
Tampilan hasilnya seperti dibawah ini.
Untuk membuat Spin Button pada ribbon, bisa mulai dengan membuat XML pada CustomUI Editor. Buat XML seperti dibawah ini:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="gLoad"> <ribbon> <tabs> <tab id="customTab" label="Slip Gaji" insertAfterMso="TabHome"> <group id="customGroup" label="Cetak Slip Gaji"> <box id="box1" boxStyle="vertical"> <box id="box2" boxStyle="horizontal"> <labelControl id="label1" label=" ID "/> </box> <box id="box3" boxStyle="horizontal"> <editBox id="Editbox1" maxLength="4" sizeString="xxxxxxx" getText="ambilText"/> <buttonGroup id="Group1"> <button id="nambah" onAction="onSpin" imageMso="MailMergeGoToPreviousRecord" /> <button id="kurang" onAction="onSpin" imageMso="MailMergeGoToNextRecord" /> </buttonGroup> </box> <box id="box4" boxStyle="horizontal"> <editBox id="Editbox2" maxLength="25" sizeString="xxxxxxxxxxxxxxx" getText="ambilNama"/> </box> </box> <separator id="Pemisah1"/> <button id="print" label="Cetak" size="large" onAction="cetakSlip" imageMso="FilePrint" /> </group> </tab> </tabs> </ribbon> </customUI>
Agar XML diatas bisa bekerja tambahkan juga script VBA dibawah ini untuk menjalankan aksi Button nya.
Public g_rbn As IRibbonUI Public g_spinv As Long Public Sub ambilText(control As IRibbonControl, ByRef nilaiBalik) g_spinv = Sheet2.Range("F1").Value nilaiBalik = g_spinv End Sub Public Sub ambilNama(control As IRibbonControl, ByRef nilaiBalik) nilaiBalik = Sheet2.Range("E1").Value End Sub Public Sub onSpin(control As IRibbonControl) If control.ID = "nambah" Then g_spinv = g_spinv - 1 Else g_spinv = g_spinv + 1 End If Sheet2.Range("F1").Value = g_spinv g_rbn.InvalidateControl "Editbox1" g_rbn.InvalidateControl "Editbox2" End Sub Public Sub gLoad(Ribbon As IRibbonUI) Set g_rbn = Ribbon End Sub Public Sub cetakSlip(control As IRibbonControl) 'Sheet2.PrintOut MsgBox "tercetak" End Sub
Untuk penjelasan lebih detail bisa lihat pada tutorial di Youtube.
Download File : [download id=”846″]