初心者備忘録

Webページ開設しました → 初心者備忘録: http://www.ka-net.org/

全体表示

[ リスト ]

Webページを開設しました

ドメインを取得しサーバもレンタルしましたので、Webページを開設しました。
当ブログの記事もそちらへ移そうと、現在移行作業中です(当ブログはしばらくそのまま残しておく予定です)。
リボンのカスタマイズを中心としたコンテンツを作成していく予定ですので、興味がある方は是非ご訪問ください。

初心者備忘録:http://www.ka-net.org/


以前書いた記事の応用で、今回はボタンの画像をアニメーションさせてみようと思います。

【Office 2007】ボタンでアニメーションする
1. Office 2007ファイルを開き、標準モジュールに下記コードを貼り付けた後保存します。(今回はExcelファイル)
Dim myRibbon As IRibbonUI
Dim myFlag As Boolean
Dim myNum As Integer
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" & myNum & ".BMP")
End Sub

Sub myButton_onAction(control As IRibbonControl)
  Call ChangeFlag
  Call PlayAnimation
End Sub

Sub ChangeFlag()
'フラグ変更用プロシージャ

  If myFlag = True Then
    myFlag = False
  Else
    myFlag = True
  End If
End Sub

Sub PlayAnimation()
'アニメーション再生用プロシージャ

  If myFlag = True Then
    If myNum >= COUNT_IMAGE Then
      myNum = 0
    End If
    
    myNum = myNum + 1
    Call myRibbon.InvalidateControl("myButton")
    Application.OnTime [Now() + "0:00:00.1"], "PlayAnimation"
  End If
End Sub
※ 上記コード内「COUNT_IMAGE」はアニメーション用の画像数です。今回は4つの画像をアニメーションさせてみます。

2. 1.のファイルと同じ場所に連続した画像(今回はimg1〜img4.BMPファイル)を置きます。
3. Custom UI Editor Toolで1.のファイルを開きます。
4. 下記コードを貼り付け、上書き保存します。
<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>
5. 4.のファイルをマクロを有効にして開くと、Custom Tabタブに「My Button」ボタンが表示されていることが確認できます。
イメージ 1

6. 「My Button」ボタンをクリックすると、ボタンの画像がアニメーションします。
イメージ 2


以上で作業は終了です。
上記コードでは「getImage」属性で画像を指定し、InvalidateControlで画像の変更を反映させる動作を、Application.OnTimeで連続して呼び出しています。
Application.OnTimeのタイミングにもよりますが、アニメーション動作中は通常操作は重くなってしまいますので、正直実用性はあまりないです…。


【関連記事】
ブログコンテンツ・リボンのカスタマイズ関連
http://blogs.yahoo.co.jp/kinuyo_asami/17750449.html


http://x7.o-oku.jp/bin/ll?09817230O

この記事に

閉じる コメント(1)

顔アイコン

????域??障?????????????ц恭莊>撮???????潟?≧????障??(鐓???^*)
腱???????違???????????潟???ャ????????????(?р????鐔件習鐔謂?

筝?綽??粋??吟????????????aki-hanamizuki@i.softbank.jp菴??<?若????蕁??????障??鐚?
2016綛癌????篋?????????綛眼????????鐚??獅??鐚?鐚?

2016/1/26(火) 午後 7:11 [ - ] 返信する

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事