Outlook 功能区:VBA 中的按钮切换
Outlook Ribbon: button toggle in VBA
我在 vba 中编写了一个侦听器,在我的 outlook 中,当我收到邮件时执行一个操作。
我希望能够使用 Outlook 功能区上的按钮打开和关闭此功能。
要了解当前状态 (on/off),我想在按钮上的两个图像之间切换 (green/red)。
有谁知道如何在单击按钮时更改按钮上的图像?
我不知道有什么具体的方法可以做到这一点,或者它是否可能,但您可以在运行时编辑组的可见 属性。因此你可以有两组,有两张图片——一张红色,一张绿色。在这种情况下,我有一个名为 Actions 的组,我将展示如何制作它 visible/invisible:
XML - 将您的按钮作为控件放在此处
<group id="customGroup1" label="Actions" getVisible="CallbackGetVisible">
</group>
Public/Module级声明。这将决定该组是否可见
Public bShowActions As Boolean
CallbackGetVisible 由 XML 调用以设置组的可见性 属性。可见性由 bShowActions
决定
Sub CallbackGetVisible(control As IRibbonControl, ByRef visible)
On Error GoTo err_Handle
Const strError As String = "'CallbackGetVisible'"
'Don't Re-Set The Value If It's Already The Same
If bShowActions = visible Then GoTo Cleanup
visible = bShowActions
GoTo Cleanup
'Set Any Objects to Nothing, Exits Routine
Cleanup:
Exit Sub
'Throw Error
err_Handle:
'Handle your error here
Resume Cleanup
End Sub
这并不简单,但你应该能够实现你所需要的。
我在 vba 中编写了一个侦听器,在我的 outlook 中,当我收到邮件时执行一个操作。
我希望能够使用 Outlook 功能区上的按钮打开和关闭此功能。
要了解当前状态 (on/off),我想在按钮上的两个图像之间切换 (green/red)。
有谁知道如何在单击按钮时更改按钮上的图像?
我不知道有什么具体的方法可以做到这一点,或者它是否可能,但您可以在运行时编辑组的可见 属性。因此你可以有两组,有两张图片——一张红色,一张绿色。在这种情况下,我有一个名为 Actions 的组,我将展示如何制作它 visible/invisible:
XML - 将您的按钮作为控件放在此处
<group id="customGroup1" label="Actions" getVisible="CallbackGetVisible">
</group>
Public/Module级声明。这将决定该组是否可见
Public bShowActions As Boolean
CallbackGetVisible 由 XML 调用以设置组的可见性 属性。可见性由 bShowActions
决定Sub CallbackGetVisible(control As IRibbonControl, ByRef visible)
On Error GoTo err_Handle
Const strError As String = "'CallbackGetVisible'"
'Don't Re-Set The Value If It's Already The Same
If bShowActions = visible Then GoTo Cleanup
visible = bShowActions
GoTo Cleanup
'Set Any Objects to Nothing, Exits Routine
Cleanup:
Exit Sub
'Throw Error
err_Handle:
'Handle your error here
Resume Cleanup
End Sub
这并不简单,但你应该能够实现你所需要的。