如何在Outlook 2010功能区上选择选项卡

时间:2015-06-30 19:56:46

标签: outlook outlook-vba

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

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

这可能吗?

2 个答案:

答案 0 :(得分:0)

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

  

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

     

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

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

答案 1 :(得分:0)

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

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

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