私はExcel用のカスタムリボン拡張機能を開発しています。この拡張機能では、コントロールにさまざまなカスタム画像が必要です。ファイルシステムにあるいくつかの画像を使用することができましたが、これらの画像を.xlsmファイルに埋め込みたいと思います。それを実行し、コントロールのイメージを更新するVBAコードからそれらを参照することは可能ですか?
テストの目的で、これは私のカスタムリボンを定義するXMLです。
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbonLoaded">
<ribbon>
<tabs>
<tab idMso="TabHome" >
<group id="customGroup1" label="My Group" insertAfterMso="GroupFont">
<button id="customButton1" label="Click Me" size="large" onAction="Macro1" getImage="getButtonImage"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
そして、これはcustomButton1
コントロールのイメージを変更するマクロです。
Dim imgIndex As Long
Public Sub getButtonImage(ByVal control As IRibbonControl, ByRef Image)
Select Case control.ID
Case "customButton1"
Set Image = LoadPicture("img" + Trim(Str(imgIndex)) + ".bmp")
imgIndex = (imgIndex + 1) Mod 2
End Select
End Sub
.xlsm内にbmpファイルを追加し、それらを参照してリレーションシップファイル(.rels)を更新しようとしましたが、VBAからそれらを参照する方法がわかりません。最も重要なのは、Excelでファイルを開いて保存するときです。それらは自動的に削除されます...
どんな助けでも大歓迎です!