Если объект приложения MS Project представляет "appMSProject", то это так же просто, как:
appMSProject.Quit
ИЛИ говорят в макро бега в рамках проекта:
Application.Quit
Вот как я это делаю в VBA из Excel или Access. Насколько я могу сказать объекты & методы одинаковы в VB.NET. В итоге я создаю экземпляр объекта MS Project, который запускает приложение &, открывает файл, выполняет некоторую работу, закрывает файл, а затем уничтожает объект MS Project, устанавливая его в Nothing. Это приводит к закрытию приложения. Вы также можете использовать «appMSProject.Quit», а затем установить его в «Ничто». Честно говоря, второй вариант выглядит более упорядоченным & легче понять в коде. Во всяком случае, вот пример того, как я это сделать:
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
FYI - В этом примере я делаю подготовительную работу, чтобы я не показать приложение. Я также использую «раннее связывание».
Вот пример MSDN, который действительно показывает приложение с дополнительной информацией о начале позднего связывания-vs - https://msdn.microsoft.com/en-us/library/office/ff865152.aspx
Привет, я был в состоянии сделать это после того, как я послал вопрос. Однако могу ли я задать вам новый вопрос? как я получу полный путь открытого MS Project. – Gilbert
Привет, Джек, я нашел ответ, ActiveProject.Fullname – Gilbert
Гилберт, классно! Другая вещь, которую я делаю все время, на случай, если вы не знаете, как это сделать, - это запустить макрорекордер, сделать то, что я хочу автоматизировать, нажав и клавиатуру, остановите рекордер, а затем отредактируйте только что записанный макрос в редактор VBA. Это никогда не очень многократно используемый код, но он почти всегда предоставляет объекты и параметры. Отличная экономия времени, как вы уже знаете. Лучший! – JackW327