CustomUI : Ribbon Spin Button

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″]

Leave a Reply

Your email address will not be published. Required fields are marked *

Tutorial Lainnya
Chat WhatsApp
WhatsApp