今回はボタンの画像をアニメーションさせる方法を紹介します。
1. Office 2007ファイルを開きます(今回はExcelファイル)。
2. 標準モジュールに下記コードを貼り付けて上書き保存した後、ファイルを閉じます。
Private myRibbon As IRibbonUI
Private myFlag As Boolean
Private myNum As Integer
Private Const COUNT_IMAGE As Integer = 4 'イメージ数
Sub Ribbon_onLoad(ribbon As IRibbonUI)
Set myRibbon = ribbon
myNum = 1
End Sub
Sub myButton_getImage(control As IRibbonControl, ByRef image)
Set image = LoadPicture(ThisWorkbook.Path & "\img\img" & myNum & ".BMP")
End Sub
Sub myButton_onAction(control As IRibbonControl)
Call ChangeFlag
Call PlayAnimation
End Sub
Sub ChangeFlag()
'フラグ変更用プロシージャ
myFlag = Not myFlag
End Sub
Sub PlayAnimation()
'アニメーション再生用プロシージャ
If myFlag = True Then
If myNum >= COUNT_IMAGE Then myNum = 0
myNum = myNum + 1
Call myRibbon.InvalidateControl("myButton")
Application.OnTime [Now() + "0:00:00.1"], "PlayAnimation"
End If
End Sub
<customUI onLoad="Ribbon_onLoad" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="customTab" label="Custom Tab" insertBeforeMso="TabHome">
<group id="customGroup" label="Custom Group">
<button id="myButton" label="My Button" getImage="myButton_getImage" size="large" onAction="myButton_onAction" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>