我发现了如何以编程方式添加引用 https://stackoverflow.com/questions/9879825/how-to-add-a-reference-programmatically与VBA,
这解释了如何使用库的名称以编程方式添加对象引用,
以“VBScript_RefExp_55”为例。
我的问题是如何找到此引用名称以在该代码中用于不同的对象库?
例如 PowerPoint 库?
我用它来获取我的参考信息:
Private Sub ListProjectReferencesList()
Dim i As Long
Dim VBProj As Object 'VBIDE.VBProject
Dim VBComp As Object 'VBIDE.VBComponent
Set VBProj = Application.VBE.ActiveVBProject
Dim strTmp As String
On Error Resume Next
For i = 1 To VBProj.References.Count
With VBProj.References.Item(i)
Debug.Print "Description: " & .Description & vbNewLine & _
"FullPath: " & .FullPath & vbNewLine & _
"Major.Minor: " & .Major & "." & .Minor & vbNewLine & _
"Name: " & .Name & vbNewLine & _
"GUID: " & .GUID & vbNewLine & _
"Type: " & .Type
Debug.Print "-------------------"
End With 'VBProj.References.Item(i)
Next i
End Sub
一般来说,我更喜欢使用 GUID 而不是名称来添加它。
但正如@Rory 指出的,
您应该使用后期绑定而不是以编程方式添加引用!
Why?
Because为了以编程方式添加它们,您的用户必须进入:
-
Options启动它的应用程序(Excel,...)
- 信托中心
- 信任中心设置
- 宏设置选项卡
- Tick 信任对 VBA 项目对象模型的访问复选框
- OK
- OK
所以你最好用参考来完成你的代码,然后 :
- 删除参考文献
- 将使用这些库的所有声明更改为
Dim ??? As Object
- 检查你是否有
Option Explicit
在模块的顶部(如果没有则添加)
- 寻找应用程序特定的变量 (
Option Explicit
应该向他们发送消息)
- 大量测试你的代码
- 导出模块供其他人使用!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)