【问题标题】:VBA and late binding: Where do I find the numeric equivalents to constants?VBA 和后期绑定:我在哪里可以找到常量的数字等价物?
【发布时间】:2016-12-29 18:50:20
【问题描述】:

我是一个完整的 VBA 新手,决定在一个周末自学,所以请原谅这些愚蠢的问题。我正在尝试自动化一些涉及从 Excel 电子表格生成 Word 文档或电子邮件的日常任务。因为会涉及到多个软件版本,所以我使用后期绑定打开Word和Outlook。我的问题是:我在哪里可以找到一个简单的参考,告诉我对应于应用程序常量的索引号是什么?我花了很多时间在谷歌上搜索,例如,“联系人”的 Outlook 文件夹类型是“10”。也许有人知道一个可以节省我无数小时搜索时间的网络链接?

更新:http://msdn.microsoft.com/en-us/library/office/gg278936%28v=office.14%29.aspx 似乎有一些我需要的信息,尽管信息所在的位置并不总是很直观。例如,如果它包含 Outlook 文件夹类型常量,我还没有找到它们。

【问题讨论】:

  • 在 VB6 或任何 VBA 编辑器中按 F2(或查看菜单)进入对象浏览器。您需要右键单击并选择添加引用。如果您添加对项目的引用,则无论您如何绑定,常量都将可用。您不必使用对象的早期绑定来使用常量。

标签: vba binding


【解决方案1】:
【解决方案2】:

我建议在开发期间将相关的对象库作为参考添加到您的项目中。您可以使用 VBA 编辑器中的 Tools - References 菜单来执行此操作。这使得开发变得更加容易,因为您可以在编写代码时使用智能感知。

如果您的代码中只需要几个枚举或单个常量,获取它们的值的最简单方法是在仍然引用对象库时在 VBA 编辑器中点击[F2]。然后搜索常量名称并将其值复制到您的代码中。

仅在代码中使用常量的数值会使代码难以阅读。因此,我建议重新声明您在自己项目的模块中实际使用的所有枚举/常量。这大大提高了代码的可读性。

因此,我建议您复制名称和值并将其作为常量声明放在您自己的代码中,而不是仅仅从 VBA 对象浏览器中复制值。对于 Outlook 联系人文件夹的示例,这将如下所示:

Public Const olFolderContacts = 10

然后您可以在过程中使用该常量,就像使用早期绑定一样。

如果您使用任何一个 Office 对象库中的许多常量来处理更大的自动化项目,您可以从我的网站下载现成的 VBA modules containing all the Office constants。然后,您可以将相关模块导入您的项目并准备就绪。

完成主要开发工作后,从项目中删除链接库并声明相关对象变量As Object,而不是实际类型。

永远记得编译你的项目不要错过任何不能工作后期绑定的声明。

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 2018-06-05
    • 2017-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    相关资源
    最近更新 更多