【发布时间】:2016-07-04 18:41:24
【问题描述】:
我在 MS Project 上有一个 VSTO。我使用 VB.NET。我需要的是当我按下我在功能区上创建的按钮时,它会执行一些代码来更新某些任务的信息,但是,我需要自动关闭 MS Project。我尝试了 application.FileCloseEx(),但它只关闭文件,MS 项目仍在加载。我需要类似于点击窗口的x按钮。
谢谢, 吉尔伯特
【问题讨论】:
标签: vb.net vsto ms-project
我在 MS Project 上有一个 VSTO。我使用 VB.NET。我需要的是当我按下我在功能区上创建的按钮时,它会执行一些代码来更新某些任务的信息,但是,我需要自动关闭 MS Project。我尝试了 application.FileCloseEx(),但它只关闭文件,MS 项目仍在加载。我需要类似于点击窗口的x按钮。
谢谢, 吉尔伯特
【问题讨论】:
标签: vb.net vsto ms-project
如果您的 MS Project 应用程序对象由“appMSProject”表示,那么它很简单:
appMSProject.Quit
或者说在 Project 下运行的宏中:
Application.Quit
以下是我在 Excel 或 Access 的 VBA 中的操作方法。据我所知,VB.NET 中的对象和方法是相同的。底线是我创建了一个 MS Project 对象的实例,它启动应用程序并打开一个文件,执行一些工作,关闭文件,然后通过将 MS Project 对象设置为 Nothing 来销毁它。这具有关闭应用程序的效果。您还可以使用“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 示例,它确实显示了该应用程序,其中包含有关早期 -vs- 后期绑定的更多信息 - https://msdn.microsoft.com/en-us/library/office/ff865152.aspx
【讨论】: