6

私は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でファイルを開いて保存するときです。それらは自動的に削除されます...

どんな助けでも大歓迎です!

4

2 に答える 2

0

UtterAccess.com からのrobcooperの回答が役立つ場合があります。

Public Sub getButtonImage(ByVal control As IRibbonControl, ByRef image)
'for use in Access 2007 Ribbon control
'requires a reference to the Micrsoft Office 12.0 Object Library
    Select Case control.ID
    Case "cmdMainMenu"
        Set image = LoadPicture(CurrentProject.Path & "\home.bmp")
    End Select
End Sub
于 2020-04-11T09:41:47.030 に答える