首页 > 解决方案 > 如何查找后期绑定参考的名称

问题描述

我正在尝试对我用 Excel 编写的应用程序进行防弹。为此,我想尽可能添加后期绑定引用。不幸的是,我不知道如何确定我应该为所有引用使用的正确名称。

例如,文件系统对象可以这样引用......

Dim oFs as Object
Set oFs = CreateObject("Scripting.FileSystemObject")

通过转到此处的 Microsoft 文档页面,我可以发现“Scripting.FileSystemObject”是无需谷歌搜索即可使用的正确名称。但是对象库参考中不存在这样的页面。那么如何找出“Microsoft Office 16.0 对象库”的正确名称呢?

标签: excelvba

解决方案


当您在 Scripting.FileSystem 上使用 CreateObject 时,您正在创建一个 FileSystem 对象。定义 FileSystem 对象的类位于脚本类型库中。换句话说,您不是在创建 Scripting 对象。(我很确定你知道这一点,我只是在设置下一部分。)

如果 Office 类型库中有任何对象,您可以使用

CreateObject("Office.SomeObject")

但那里没有任何对象,所以没有什么可创建的。如果您在注册表中搜索您在工具 - 参考(如 Microsoft Office 16.0 对象库)中看到的标签,您可以看到主互操作程序集名称。我一直认为该名称的第一部分是您在 CreateObject 中使用的名称,但现在我不确定。如果搜索 Excel 16.0 Object Library,可以看到其互操作名称的第一部分是 Excel。如果你想后期绑定 Excel,你会使用 Excel.Application。但是当我尝试查找 scrrun.dll 的互操作名称时,我找不到它。它必须在注册表中,但仅搜索“脚本”将花费一生。

由于 Office 中没有任何对象,因此无需创建任何内容。但是 typlib 中的内容是常量和枚举。要后期绑定那些你只需声明变量或创建自己的枚举。

简而言之,您不需要创建 Office 对象,而且对于将字符串传递给 CreateObject 的权威来源在哪里我没有任何帮助(但我仍在押注注册表)。如果你找到它,请告诉我们。


推荐阅读