将 Microsoft Project 对象库导入 Excel VBA 项目

Importing Microsoft Project Object Library into Excel VBA Project

我 Excel VBA 代码依赖于 Microsoft Office Project 对象库 16.0 到 运行。当手动 selected 库时(通过转到工具 -> 参考并将其选中),它可以完美执行。我不希望我的用户必须 select 项目库——事实上我宁愿他们完全远离 VBA 编辑器——所以我尝试使用它的 GUID 内联添加它。

对于库 GUID,我 found {A7107640-94DF-1068-855E-00DD01075445} 的主要和次要编号分别为 4 和 9。然后我在没有库 selected:

的情况下尝试 运行ning 以下内容
Sub testReference()
ThisWorkbook.VBProject.References.AddFromGuid GUID:="{A7107640-94DF-1068- 
855E-00DD01075445}", Major:=4, Minor:=9
Dim MP_App As MSProject.Application
Set MP_App = CreateObject("Msproject.Application")
Dim MP_Project As MSProject.Project
MP_App.Visible = True
MP_App.FileOpenEx Name:="C:\Users\Adam Wertheimer\Desktop\testProjectFile.mpp"
End Sub

除了它标记行

Dim MP_App As MSProject.Application

编译错误 "User-defined type not defined",所以要么库没有正确添加,要么我还缺少其他东西。 我真的不想让所有用户都必须手动检查项目库,但如果我必须这样做的话。任何 advice/help 将不胜感激。

通过关联的 clsid guid 导入库引用不会立即授予对所有院系的访问权限。您可能需要隐藏一些直接引用。

Dim MP_App As object
Dim MP_Project As object

通过将 Microsoft Office Project 特定变量声明为普通对象,您应该能够实例化一个准备好接受后期绑定 CreateObject 的变量。创建 MP_App 后,应该可以将 MP_Project 设置为其成员之一。