使用VSTO关闭MS Project

时间:2016-03-18 05:52:58

标签: vb.net vsto ms-project

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

谢谢, 吉尔伯特

1 个答案:

答案 0 :(得分:0)

如果您的MS Project应用程序对象由“appMSProject”表示,那么它就像这样简单:

appMSProject.Quit

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

Application.Quit

以下是我在Excel或Access中使用VBA的方式。据我所知,对象&方法在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

仅供参考 - 在这个例子中,我正在做背景工作,所以我没有展示应用程序。我也使用“早期绑定”。

这是一个MSDN示例,它确实向应用程序显示了有关早期-s-late绑定的更多信息 - https://msdn.microsoft.com/en-us/library/office/ff865152.aspx