初心者備忘録

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

全体表示

[ リスト ]

前回前々回とボタンのイメージを外部から読み込む方法について記事を書きましたが、今回はそれを利用してクリックしたらボタンのイメージが変わるような処理をしてみたいと思います。

【Office 2007】クリックでボタンのイメージを変更する
1. Office 2007ファイルを開き、標準モジュールに下記コードを貼り付けた後保存します。(今回はExcelファイル)
Dim myRibbon As IRibbonUI
Dim myFlag As Boolean

Sub GetMyRibbon(ribbon As IRibbonUI)
  'リボンの取得
  Set myRibbon = ribbon
End Sub

Sub GetBtnImage(control As IRibbonControl, ByRef image)
  'フラグによってボタンにセットする画像を変更
  If myFlag = True Then
    Set image = LoadPicture(ThisWorkbook.Path & "\image1.BMP")
  Else
    Set image = LoadPicture(ThisWorkbook.Path & "\image2.BMP")
  End If
End Sub

Sub ChangeFlag(control As IRibbonControl)
  'フラグ変更
  If myFlag = True Then
    myFlag = False
  Else
    myFlag = True
  End If
  
  'コールバック再度起動
  Call myRibbon.InvalidateControl(control.ID)
End Sub
※ 上記「image1.bmp」「image2.bmp」はボタンのイメージに使用する画像ファイル名です。
※ 「ThisWorkbook.Path」で画像ファイルの場所をワークブックと同じにしていますが、直接パスを指定しても大丈夫です。

2. 上記コードで指定した画像ファイルを、1.のファイルと同じ場所に置きます。(上記コードで画像ファイルのパスを変更した場合には、その場所にファイルを置いてください。)
3. Custom UI Editor Toolで1.のファイルを開きます。
4. 「Sample」メニューから「Custom Tab」を選択します。
イメージ 1

5. 「button」要素の「imageMso="HappyFace"」を「getImage="GetBtnImage"」に、「onAction="Callback"」を「onAction="ChangeFlag"」に置き換え、「customUI」要素に「onLoad="GetMyRibbon"」を追加します。
イメージ 2

※ 「GetBtnImage」「ChangeFlag」「GetMyRibbon」は1.で貼り付けたプロシージャ名です。

6. 一旦上書き保存して、1.のファイルをマクロを有効にして開きます。
7. Custom Tabタブの「Custom Button」をクリックすると、1.のコードで指定した画像ファイルが切り替わるのが確認できます。
イメージ 3

イメージ 4


以上で作業は終了です。
上記コードではLoadPicture関数でBMPを読み込んでいますが、前回の記事で使用した「LoadImage」関数を使用すると、PNG画像なども読み込むことができます。


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

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

この記事に

閉じる コメント(1)

顔アイコン

初めましてです(´∀`)
ガマンできないのでコメントさせてください(o^^o)
初コメなので失礼があったらすいません。。。(*^-^)

正直ここのところ落ち込んでいたのですが、kin*y*_as*miさんのブログを読むことができて元気を取り戻せました\(○^ω^○)/

ブログって人それぞれの人生が刻まれていて、そこの喜怒哀楽に触れるだけで私は一人じゃないんだなって思えましたo(≧∇≦o)
それを改めて気づかせてくれたのが、管理人のkin*y*_as*miさんのブログだったんですよ(o≧∀≦)o

koikaren@i.softbank.jp

私のメールアドレスです。無理なお願いを承知でお願いなのですが、ここのところの私の抱えてる悩みの相談に乗って貰えないでしょうか。。。
直接メールを頂けたら必ずお返事します(´∀`*)
お時間はとらせないので宜しくお願いします。

2015/2/16(月) 午後 4:44 [ mh3*k*gl ] 返信する

コメント投稿

顔アイコン

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

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

.


みんなの更新記事