【问题标题】:How to select a Tab on Outlook 2010 Ribbon如何在 Outlook 2010 功能区上选择选项卡
【发布时间】:2020-06-27 16:54:27
【问题描述】:

我编写了一个调用 VBA 宏的规则,该宏会自动将所有电子邮件转发到一个非现场帐户。有时,规则会失败并显示 Outlook(不是 VBA)错误消息,并且在我重新激活它(通过所有选择并点击应用)之前,该规则变为非活动状态,然后一切都很好(直到下一次)。

我想要一个在 Outlook 启动时运行的宏,它只做一件事 - 选择功能区“规则”选项卡下的“管理规则和警报”下拉菜单项。然后它会打开,并向我保证规则已激活并正常工作。

这可能吗?

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    您可以使用 Outlook 对象模型,而不是尝试以编程方式运行命令和功能区控件。 Store 类提供GetRules 方法,该方法返回一个Rules 集合对象,其中包含为当前会话定义的规则对象。您可以使用 Rule 类的 Enabled 属性,该属性返回一个布尔值,用于确定是否应用规则。以下是 MSDN 的声明:

    设置规则的 Enabled 属性并不能保证该规则将被启用。只有在 Rules.Save 成功执行后才会启用该规则。

    使用 Rule.Enabled 和 Rules.Save 一致地应用规则并将规则保留在当前会话之外。启用规则(已成功保存)可确保应用该规则。如果是本地客户端规则,则将在 Outlook 运行时应用该规则,如果该规则是基于服务器的规则,则无论 Outlook 是否正在运行,都将应用该规则。如果您不启用该规则,则该规则已定义,但不会应用。但是,无论是否启用规则,您都可以使用 Rule.Execute 将规则作为一次性操作应用。

    您可以考虑处理 Application 类的 Startup 事件,该事件在 Outlook 启动时触发,但在所有加载项程序都已加载之后。

    【讨论】:

    • 感谢您的解释。作为新手 Outlook VBA 编码器,我什至不知道如何开始您的建议。你能发布一些代码来满足我上面列出的需要吗?再次感谢。
    【解决方案2】:

    尽我所能确定,在 Outlook 中,无法以编程方式选择和激活功能区上的选项卡。

    我的解决方案是创建一个在 Application_Start() 例程中激活的用户窗体。它专注于启动并提醒我做我需要做的事情。

    为了知识起见,我很乐意查看原始问题的任何其他潜在解决方案。

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多