Я обнаружил, что создание ленты программным способом доставляет больше хлопот, чем стоит.Вместо этого я использую подход XML.Доступно несколько бесплатных редакторов, один из которых называется Редактор пользовательского интерфейса Office .
В Интернете много учебных пособий, поэтому я не буду давать их здесь, просто выполните поиск по запросу "custom ribbon xml" илианалогично.
Ниже приведен базовый XML-код для создания настраиваемой вкладки:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="customTab" label="CustomTab1">
<group id="grpCustomTab" label="CustomGroup1">
<button id="btnCustomButton" label="A custom button" imageMso=" ShapeSmileyFace" size="large" onAction="ACallBack" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Здесь важны onAction="ACallBack"
и buttonID
.Параметр onAction - это подпрограмма, которая будет вызываться при нажатии кнопки.Каждая кнопка должна иметь один и тот же сабвуфер onAction со специальной подписью:
Sub ACallBack(control As IRibbonControl)
Вы можете назвать сабвуфер любым действительным, но он должен иметь параметр IRibbonControl
.ButtonID - это то, что вы используете, чтобы затем вызвать правильный саб.Допустим, у вас были кнопки с идентификаторами ID1, ID2 и ID3.Ваш код может выглядеть следующим образом:
Sub ACallBack(control As IRibbonControl)
Application.Run CStr(control.ID)
End Sub
Sub ID1
Msgbox "This is sub 1"
End Sub
Sub ID2
Msgbox "This is sub 2"
End Sub
Sub ID3
Msgbox "This is sub 3"
End Sub
При таком подходе все документы, основанные на шаблоне, будут автоматически отображать вашу пользовательскую ленту.