У меня (довольно базовый c) вопрос о функциях обратного вызова RibbonX.
Я закодировал некоторые макросы с помощью VBA, упакованного в модули VBA, и создал вкладку ленты, используя Office RibbonX Editor
.
Я создал XML с помощью редактора, вот так ...
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="maintab" label="My Macros">
<group id="g_general" label="General">
<button
id="btn_toggle_confidential"
label="Toggle Confidential"
onAction="Toggle_Confidential_Text"
size="large"
imageMso="MailMergeUpdateLabels"
supertip="Toggles the visibility of the 'confidential' tag in the master and in the title layout." />
...
... для всех функций, которые мне нужны на ленте, например, например:
Sub Toggle_Confidential_Text()
If Has_Confidential_Text() = False Then
MsgBox "ATTENTION! There is no confidential tag in the slide master!"
Exit Sub
End If
' etc...
End Sub
Все работает нормально и как и ожидалось!
В «средстве просмотра обратных вызовов» редактора лентыX я вижу это:
'Callback for btn_toggle_confidential onAction
Sub Toggle_Confidential_Text(control As IRibbonControl)
End Sub
Мой вопрос:
- Как это точно соединить кнопку с функцией в моем модуле кода? Или это просто упрощенное отображение «маршрутизации», которая выполняется под капотом?
- Параметр
IRibbonControl
передается автоматически, даже если в моем собственном объявлении подпрограммы об этом не упоминается? 1026 * Могу ли я (или как я) получить доступ к параметру IRibbonControl
в моей подпрограмме для взаимодействия с элементом ленты? Нужно ли мне изменить свой подход и обернуть мои подпрограммы, или я могу просто получить доступ к параметру, потому что он неявно передан?