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 启动所有模块名称,并且我的程序不使用此前缀。

这些代码区域和任何编辑器的数据输入区域一样。单击代码区域以选择它并键入代码或粘贴从其他地方复制的代码,例如本教程的下一部分。