1.3 Visual Basic 編輯器入門

本節中的影象均來自 Outlook 2016,但它們可能來自 Outlook 2003.多年來,Outlook VBA 可能已經發生了變化,但在我看來,VBA 編輯器還沒有。無論你有哪種版本,你都會看到類似的東西:

StackOverflow 文件

上面對Project1 有一個“+ ”。如果你有“+”單擊它,然後單擊“+”對“Microsoft Outlook 物件”獲取:

StackOverflow 文件

屬性視窗可能不存在,或者如果存在,可能位於“VB 編輯器”視窗中的其他位置。我們暫時不需要它。你可以通過單擊十字架關閉它,並可以 F4 隨時使其再次可見。我通常不會看到它,因為我大部分時間都不需要訪問屬性,而我的 Project Explorer 列表佔據了左側的大部分。我建議你一直看到它,直到它成為一個麻煩。

如果單擊 ThisOutlookSession,灰色區域將變為白色,或者如下圖所示,灰色區域中將出現程式碼視窗:

StackOverflow 文件

你可以在此程式碼視窗中鍵入任何程式碼。但是,必須在此程式碼視窗中鍵入事件例程(在本教程末尾討論)。我建議你為事件例程保留 ThisOutlookSession 程式碼區域。

相反,單擊 Insert 以獲取:

StackOverflow 文件

單擊 Module 以新增模組:

StackOverflow 文件

我的新模組名為 Module1。如果你的 Outlook 版本是非英語版本,則你的模組將使用你的語言具有相同的名稱。你可以新增更多模組,這些模組將命名為 Module2Module3 等。

如果我正在建立一個 Excel 工作簿,我只需要一個模組,我可能會將名稱保留為 Module1。但是使用 Outlook,我的所有巨集都必須到這裡,所以我有很多模組。多年來,我寫了許多我重複使用的例程。我有一個用於一般 VBA 例程的模組,另一個用於訪問 Excel 的例程,另一個用於 Outlook VBA 例程,然後是一個模組,每個 Outlook 任務我用巨集執行。如果檢視屬性視窗,你將看到模組的唯一屬性是其名稱。單擊“模組 1”對名稱,你可以將其更改為任何有效(以字母開頭,包含字母和數字等)名稱。如果模組和過程具有相同的名稱,則會出現奇怪的錯誤,因此我使用 Mod 啟動所有模組名稱,並且我的程式不使用此字首。

這些程式碼區域和任何編輯器的資料輸入區域一樣。單擊程式碼區域以選擇它並鍵入程式碼或貼上從其他地方複製的程式碼,例如本教程的下一部分。