Excel用のカスタムリボン拡張を開発していますが、コントロールで異なるカスタム画像が必要です。私はファイルシステムにあるいくつかのイメージを使用することができましたが、これらのイメージを.xlsmファイルに埋め込みたいと思います。 コントロールのイメージを更新するVBAコードから参照することはできますか?テスト目的のためにカスタムリボン用のOfficeファイルに画像を埋め込む方法
、これは私のカスタムリボン定義する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でファイルを開いて保存すると自動的に削除されます...
何か助けていただければ幸いです!
イメージを1回追加する必要がありますか、新しいイメージでファイルを何度も更新する必要がありますか?一度だけ追加する必要がある場合は、[Custom UI Editor](http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/07/7293.aspx)を使用してcustomUI XMLに追加できます。 )。それらを頻繁に更新する必要がある場合、その方法もうまくいかない可能性があります。 –
イメージを一度追加するだけです。カスタムUIエディタは、埋め込みの最初の問題を解決するのに非常に便利でした(間違った.relsファイルの画像を手動で参照していました...)。しかし、どのようにしてVBAにアクセスして読み込むことができますか?私はLoadPicture関数がそれらと動作しないと思う... –