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

这并不简单,但你应该能够实现你所需要的。