Пользовательские значки пользовательского интерфейса ленты могут быть прозрачными. Я считаю, что они должны быть .png файлами. Ниже приведена подробная информация о настройках значка ленты пользовательского интерфейса, включая прозрачные фоны.
https://docs.microsoft.com/en-us/office/dev/add-ins/design/add-in-icons
ПЕРЕСМОТР
В редакторе пользовательского интерфейса вы можете импортировать файлы изображений, а затем просто ссылаться на имена файлов в коде XML. Я считаю, что тип файла и то, имеет ли само изображение прозрачный фон, определяет, будет ли оно прозрачным на ленте. Вот как будет выглядеть XML. <button id="customButton1" label="Label 1" size="large" onAction="Macro1" image="picture1" />
1009 *
Просматривая ваш XML-код, я вижу, что у вас есть расширение файла, включенное в изображения. Я не включаю расширения файлов с моими собственными значками изображений. В редакторе настраиваемого пользовательского интерфейса, который я связал, вы можете добавить импорт файла изображения, который появится на боковой панели, а затем указать ссылку только на имя файла в XML (без расширения файла). Я также считаю, что сам тип файла и имеет ли изображение на самом деле прозрачный фон, который определяет, будет ли оно прозрачным на ленте. JPG-файлы не могут быть прозрачными, так что это может быть вашей проблемой прямо сейчас. Если ваш редактор пользовательского интерфейса не может вместить файлы PNG, попробуйте использовать GIF. Иконки такие маленькие; Качество изображения не должно быть проблемой.
Вот пример:
<splitButton id="splitButton2" size="large" >
<button id="InsertTools" label="Insert" image="InsertTools_Transparent" />
<menu id="menu2">
<button id="buttonInsertMultiSheets" onAction="ModRibbon.Run_InsertMultipleSheets" label="Insert Multiple Sheets" screentip="Add multiple worksheets at one time. An input box will appear for you to enter the number of sheets to be added." image="WorksheetAddMultipleSheets" />
</menu>
</splitButton>
Вот некоторые из моих личных заметок, когда я учился, которые могут или не могут быть полезны для вас.
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<backstage>
<button id="MyCustomButton1" label="My Macro"
imageMso="HappyFace" isDefinitive="true" onAction="ModRibbon.Run_Macro1"/>
<!-- 'button id' each must be unique -->
<!-- 'My Macro' is the text that will appear on your button -->
<!-- Use 'imageMso' or 'image' to include a picture on your button. -->
<!-- 'imageMso' uses built-in Office images; do not insert into this file as icons. -->
<!-- 'image' uses your own image as your button's icon. Insert it into this file as an icon. -->
<!-- 'HappyFace' is the name of the built-in Office image (for custom images, enter the file name). -->
<!-- 'ModRibbon' is the name of the VBA module in which you will paste this call-back sub. You can name this anything. -->
<!-- 'Run_' is a custom prefix added to the macro name, so you don't have to rename your macros. -->
<!-- 'Macro1' is the macro that should be run when the button is clicked. -->
</backstage>
</customUI>
В редакторе Custom UI, который я использую, обратный вызов будет:
'Callback for buttonInsertMultiSheets onAction
Sub Run_InsertMultipleSheets(control As IRibbonControl)
End Sub
Судя по вашему коду, вам также нужен вызов для загрузки изображения, поэтому элемент управления customUI имеет два обратных вызова:
Sub LoadImage (imageID As String, ByRef image)
Sub OnLoad(ribbon As IRibbonUI)
Если у вас также есть [Content_Types] .xml, то типом по умолчанию является PNG, и вам нужно добавить строку в самом конце файла, но перед этим, а затем сохранить изменения.
<Default Extension="jpg" ContentType="application/octet-stream"/>