共用方式為


搭配 Outlook 使用 Visual Basic

使用 Visual Basic 自訂和擴充 Outlook。 藉由使用 Visual Basic for Applications 撰寫巨集、使用 VBScript 撰寫自訂表單,以及使用其他語言 (例如 Visual Basic) 撰寫增益集,就可以控制 Outlook。 根據您的程式所要完成的任務,來決定使用方法。

Visual Basic 是一種功能完整的程式設計語言,您可以用它來建立獨立的應用程式或能夠擴充其他應用程式的動態連線程式庫 (DLL)。 Visual Basic for Applications 是 Visual Basic 的子集合,可以在應用程式內執行以擴充其特性。 VBScript 是 Visual Basic for Applications 的簡化版本,並且在 Outlook 項目範圍內執行。 在各種情況下,這些程式設計語言都是透過物件模型來控制 Outlook。

了解 Outlook 物件模型

如果您想建立一個可以存取 Outlook 所儲存之資料的獨立應用程式,並且使用 Outlook 來收發郵件,可以使用 Visual Basic 來建立該應用程式。 您也可以使用其他程式設計語言 (如 C++),透過其物件模型來控制 Outlook。 您可以建立一個能將 Outlook 擴充為 COM 增益集的 DLL。 COM 增益集的應用之一,就是以程式設計表單區域及建立自訂表單。

您可以使用 Visual Basic for Applications 的兩種方式之一:在其他應用程式中使用 Visual Basic for Applications (例如 Microsoft Excel 或 Microsoft Word) 將 Outlook 自動化,或者您可以使用 Outlook 內的 Visual Basic for Applications 來控制 Outlook。 如果希望使用者大部分時間都使用另一個應用程式,並且希望給予使用者使用 Outlook 傳送郵件或存取 Outlook 所儲存之資訊的能力,請在該應用程式中設計能夠透過 Outlook 物件模型來控制 Outlook 的 Visual Basic for Applications 程式。 另一方面,如果要設計可以自訂 Outlook 運作方式 (與巨集類似) 的 Visual Basic 程式碼,請在 Outlook 範圍內使用 Visual Basic for Applications。

您使用增益集擴充自訂表單中的表單區域時,可以使用 VBScript 來擴充自訂表單中的表單頁面功能。 VBScript 程式儲存在表單內。 由於程式碼包含在表單中,因此可以和項目一起傳送給其他使用者。 除了考慮要使用表單頁面或表單區域自訂表單之外,選擇要使用哪一種 Visual Basic 程式設計語言的另一個重要考慮是您希望程式回應的事件種類。

由於 VBScript 程式碼與特定項目關聯,所以要回應特定項目中事件的程式碼 (例如開啟特定項目或變更欄位中的值時),使用 VBScript 撰寫最為容易。 另一方面,如果希望程式回應在應用程式、Windows 檔案總管、資料夾或所有項目中發生的事件,便應該使用 Visual Basic 或 Visual Basic for Applications 來設計程式。

為 Visual Basic 或 Visual Basic for Applications 撰寫的程式碼通常無法在 VBScript 中運作,而不需修改。 例如,您必須以 VBScript 中這些常數的常值,取代所有以 Visual Basic for Applications 撰寫的內建常數。 而 VBScript 只會使用 Variant 資料類型。 了解 VBScript 中的常數和變數。 在 Outlook Visual Basic for Applications 和 VBScript 中,您不需要呼叫 CreateObjectGetObject 來取得 Application 物件。 例如,下列程式碼會顯示 [工作] 資料夾:

Set olMAPI = Application.GetNameSpace("MAPI") 
olMAPI.GetDefaultFolder(13).Display

其他應用程式內的 Visual Basic 或 Visual Basic for Applications 中,您必須明確地建立 Application 物件,如下列程式碼所示:

Set myOlApp = CreateObject("Outlook.Application") 
Set olMAPI = myOlApp.GetNameSpace("MAPI") 
olMAPI.GetDefaultFolder(olFolderTasks).Display

或使用傳送至增益集之 OnConnection 事件的 Application 物件。

注意呼叫CreateObject方法及其任何從屬物件、屬性和方法所傳回的Application物件不受信任。 如需使用 COM 增益集中受信任之 Application 物件的詳細資訊,請參閱 Outlook 物件模型的安全性表現方式

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應