Добавить пользовательскую вкладку на ленте - PullRequest
1 голос
/ 09 апреля 2020

Я пытаюсь узнать что-то новое. Я создал пользовательскую вкладку на основе учебника Сиддхарта Раута. XML часть выглядит так

<customUI onLoad="RibbonOnLoad" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyCustomTab" label="MyTab" insertAfterMso="TabView">
<group id="customGroup1" label="First Tab">
<button id="customButton1" label="JG Button 1" imageMso="HappyFace" size="large" onAction="Callback1" />
<button id="customButton2" label="JG Button 2" imageMso="PictureBrightnessGallery" size="large" onAction="Callback2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>

Затем в модуль рабочей книги я поместил этот код, чтобы активировать вкладку, когда рабочая книга открыта

Private myRibbon As IRibbonUI

Sub OnLoad(ribbon As IRibbonUI)
Set myRibbon = ribbon
myRibbon.ActivateTabMso ("MyTab")
End Sub

Но когда я открыл рабочую книгу, Я обнаружил ошибку Can't run the macro RibbonOnLoad. Я использую 32-разрядную версию Office 365 и 64-разрядную Windows 10.

1 Ответ

2 голосов
/ 09 апреля 2020

Во-первых, как уже упоминалось в freeflow, обратный вызов должен быть RibbonOnLoad. Во-вторых, вы должны использовать метод ActivateTab, поскольку это настраиваемая вкладка. И в-третьих, вы должны указать идентификатор элемента управления, а не имя вкладки. Попробуйте следующий код, который нужно поместить в обычный модуль ...

Private myRibbon As IRibbonUI

'Callback for customUI.onLoad
Sub RibbonOnLoad(ribbon As IRibbonUI)

    Set myRibbon = ribbon
    myRibbon.ActivateTab "MyCustomTab"

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...