使用 VSTO 关闭 MS 项目

Close MS Project using VSTO

我在 MS Project 上有一个 VSTO。我使用 VB.NET。我需要的是当我按下我在功能区上创建的按钮时,它会执行一些代码来更新某些任务的信息,但是,我需要自动关闭 MS 项目。我尝试了 application.FileCloseEx(),但它只关闭了文件,MS 项目仍在加载。我需要类似于单击 window.

的 x 按钮

谢谢, 吉尔伯特

如果您的 MS Project 应用程序对象由 "appMSProject" 表示,那么它很简单:

appMSProject.Quit

或者在项目下的宏 运行 中说:

Application.Quit

以下是我在 VBA 中从 Excel 或 Access 中执行此操作的方法。据我所知,VB.NET 中的对象和方法是相同的。底线是我创建了一个 MS Project 对象的实例,它启动应用程序并打开一个文件,执行一些工作,关闭文件,然后通过将其设置为 Nothing 来销毁 MS Project 对象。这具有关闭应用程序的效果。您也可以使用 "appMSProject.Quit" 然后将其设置为 Nothing。坦率地说,第二个选项在代码中看起来更有序且更容易理解。无论如何,这是我的做法示例:

Dim appMSProject As MSProject.Application
Dim prjPrj As MSProject.Project
Dim strPrjFile As String

strPrjFile = "C:\where_is_my_file\file_name.mpp"

Set appMSProject = New MSProject.Application
appMSProject.FileOpenEx Name:=strPrjFile
Set prjPrj = appMSProject.ActiveProject

'''Do something in here with the prjPrj

'Close the file, in my case w/o saving
appMSProject.FileCloseEx pjDoNotSave


'Destroy the objects
Set prjPrj = Nothing
Set appMSProject = Nothing

仅供参考 - 在此示例中,我正在进行后台工作,因此我不显示该应用程序。我也用"early binding"。

这是一个 MSDN 示例,它向应用展示了有关早期绑定与后期绑定的更多信息 - https://msdn.microsoft.com/en-us/library/office/ff865152.aspx