2015-06-30 104 views
1

我編寫了一個調用VBA宏的規則,該規則會自動將所有電子郵件轉發到非現場帳戶。有時,規則會失敗並顯示Outlook(而不是VBA)錯誤消息,並且規則變爲非活動狀態,直到我重新激活它爲止(通過所有選擇並點擊應用),然後再次正常(直到下一次)。想要在Outlook啓動時運行一個可執行一項操作的宏 - 選擇功能區上規則選項卡下的管理規則&警報下拉菜單項。然後它會打開並保證我的規則已啓動並正常工作。如何選擇Outlook 2010功能區上的選項卡

這可能嗎?

回答

0

而不是嘗試以編程方式運行命令和功能區控件,您可以使用Outlook對象模型。 Store類提供GetRules方法,該方法返回一個Rules集合對象,該集合對象包含爲當前會話定義的Rule對象。您可以使用Rule類的Enabled屬性,該屬性返回一個布爾值,該值確定是否應用該規則。這裏是MSDN指出:

設置規則的Enabled屬性不保證該規則將被啓用。該規則僅在Rules.Save成功執行後才能啓用。

使用Rule.Enabled和Rules.Save一致地應用規則並將規則保留在當前會話之外。啓用規則(已成功保存)確保將應用該規則。如果它是本地客戶端規則,則該規則將在Outlook運行時應用,並且如果規則是基於服務器的規則,則無論Outlook是否在運行,都將應用該規則。如果您未啓用該規則,則會定義該規則,但不會應用該規則。但是,無論規則是否啓用,您都可以使用Rule.Execute將規則應用爲一次性操作。

您可能會考慮處理在Outlook啓動時觸發的Application類的Startup事件,但在加載所有加載項程序之後。

+0

謝謝你的解釋。作爲新手Outlook VBA編碼器,我甚至不知道如何開始你的建議。你可以發佈一些代碼,可以做我以上列出的需要嗎?再次感謝。 – parodytx

+0

查看[Outlook 2010中的VBA入門](https://msdn.microsoft.com/zh-cn/library/office/ee814736(v = office.14).aspx)開始。 –

0

盡我所能,在Outlook中,選擇並激活功能區上的選項卡是不可能的。

我的解決方案是創建一個在Application_Start()例程中激活的Userform。它專注於創業,並提醒我做我需要做的事情。

出於知識的緣故,我很樂意查看原始問題的任何其他潛在解決方案。

相關問題