如何在Office文件中嵌入图像以自定义功能区

问题描述 投票:5回答:2

我正在为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),但是当我使用Excel打开文件并保存时,我不知道如何从VBA引用它们。它,它们会被自动删除...

感谢您的任何帮助!

vba excel-vba ribbon excel
2个回答
1
投票

如果图像嵌入在customUI中,则不需要VBA即可将其添加到控件中。只需在image标签中为图像使用相同的ID:

<button id="button1" label="Test" size="large" image="TestID" onAction="ButtonOnAction" />

我的示例正在处理ID为“ TestID”的图像,必须在customUI XML中找到它-展开customUI中的Custom UI Editor节点以查找或更改图像ID(或使用编辑器添加新的图片)。


0
投票

http://www.utteraccess.com/forum/custom-images-custom-t1372373.html

Public Sub getButtonImage(ByVal control as IRibbonControl,ByRef image)'用于Access 2007功能区控件中'需要对Micrsoft Office 12.0对象库的引用选择案例控件.ID案例“ cmdMainMenu”设置图片= LoadPicture(CurrentProject.Path&“ \ home.bmp”)结束选择结束子

© www.soinside.com 2019 - 2024. All rights reserved.