為 Microsoft Outlook 建立自訂屬性頁包括以下四個主要步驟:
建立做為 ActiveX 控制項的頁面。
實作 PropertyPage 物件。
編寫可設定 Dirty 屬性的值並呼叫 OnStatusChange 方法的程序。
建立元件物件模型 (COM) 增益集,其中包含Application 或NameSpace物件的OptionsPagesAdd事件程序,視需要。 如需建立 COM 增益集的相關資訊,請參閱 使用 COM 增益集自訂 Outlook。
建立做為 ActiveX 控制項的頁
在 Outlook 中,自訂屬性頁是與動態連線程式庫 (DLL) (設計成 COM 增益集) 一起執行的 ActiveX 控制項。 建立自訂屬性頁最簡單的方法是使用 Microsoft Visual Basic 6.0 (含) 以上版本。 此版 Visual Basic 提供的範本及工具可簡化建立 ActiveX 控制項及 COM 增益集的程序。
在建立 ActiveX 控制項後,可將使用者所需的控制項置入該控制項,以設定頁需支援的屬性。 因為當 Outlook 在對話方塊中顯示屬性頁時,可能會修正控制項的大小,所以控制項的 Initialize 事件,應該根據控制項 Width 和 Height 屬性的最終值,來動態定位和修正子控制項的大小。
顯示自訂屬性頁的對話方塊,其屬性頁下方包含三個按鈕: [確定] 按鈕、 [取消] 按鈕和 [套用] 按鈕。 當使用者按一下 [確定] 按鈕時,會立刻套用對話方塊中所有頁屬性的變更,並關閉對話方塊。 如果使用者按一下 [取消] 按鈕,屬性將不會變更,並關閉對話方塊。 如果使用者按一下 [套用] 按鈕,會立刻套用對屬性所做的任何變更,但對話方塊依然處於開啟狀態。 您應該將屬性頁設定為當使用者按一下這些按鈕時,便會產生相對的回覆。 本主題的稍後部分將說明當屬性頁狀態變更時,如何通知 Outlook,以及當套用變更的屬性值時,Outlook 如何通知程式。
實作 PropertyPage 物件
PropertyPage 物件是抽象物件,亦即其介面已經定義,卻沒有由 Outlook 實作。 如果自訂屬性的變更需要依靠父輩對話方塊中的 [套用] 或 [說明] 按鈕,包含自訂屬性頁 ActiveX 控制項的模組便必須實作 PropertyPage 物件。 若要實作此物件,模組必須有設定至 Outlook 物件程式庫的參照,並必須包含下列陳述式。
Implements Outlook.PropertyPage
接著,模組必須包含執行 PropertyPage 物件的方法和屬性的程式碼。 下表說明這些程序。
Procedure | 描述 |
---|---|
Dirty 屬性 | 由 Outlook 呼叫,用於回應 OnStatusChange 方法,以確定使用者是否有變更屬性頁上的值。 |
Apply 方法 | 由 Outlook 呼叫,用於通知程式使用者已按一下 [確定] 或 [套用] 按鈕。 此程序通常會套用使用者在屬性頁中變更的任何屬性值。 |
GetPageInfo 方法 | 由 Outlook 呼叫,用於取得與屬性頁相關的說明檔和主題。 |
編寫設定 Dirty 屬性並呼叫 OnStatusChange 方法的程序
在多數情況下,並不會立刻套用屬性值的變更,以回應使用者與可讓使用者指定屬性值之控制項的互動。 當使用者按一下對話方塊中的 [確定] 或 [套用] 按鈕時,便會套用這些值。 在使用者變更屬性頁中的值之前, [套用] 按鈕都是灰色的。 若要通知 Outlook 使用者已經修改過屬性頁中的值,您的程式應該呼叫 OnStatusChange 方法,然後在 Outlook 查詢 Dirty 屬性時傳回 True。
建立包含 OptionsPagesAdd 事件之事件程序的 COM 增益集
OptionsPagesAdd 事件允許程式將自訂屬性頁新增到 Microsoft Outlook [選項] 對話方塊中 (如果是為 Application 物件觸發該事件) 或資料夾 [內容] 對話方塊中 (如果是為 NameSpace 物件而呼叫該事件)。 當 Outlook 呼叫此事件程序時,便會傳遞 PropertyPages 物件。 您的事件程序會使用該集合的 Add 方法,將程式所實作的 PropertyPage 物件新增到物件中。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。