Оставьте файл проекта открытым после извлечения его с помощью GetObject - PullRequest
0 голосов
/ 30 сентября 2010

Как правильно оставить файл MS Project открытым с помощью GetObject () открытым и видимым для пользователя после завершения макроса в другом приложении?

Информация, которую я нашел в Интернете, предполагает, что установив для свойства Application.UserControl значение True, прежде чем объекты выйдут из области видимости, должно позволить пользователю продолжить использование открытого файла. Однако, по крайней мере, для MS Project свойство Application.UserControl доступно только для чтения. Есть ли способ обойти это?

Упрощенный пример, показывающий проблему:

Sub AddTasks()
    Dim proj As Object

    ' Already have the file path from another part of the workflow
    Set proj = GetObject("C:\projtest.mpp")

    ' perform some calculations and add new tasks to project
    proj.Tasks.Add "additional task"

    ' Leave Project open and visible for the user
    proj.Application.Visible = True
    proj.Application.UserControl = True ' Gives "Type Mismatch" error
    ' without the UserControl line, runs ok, but Project closes after the end of the macro
End Sub

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Вместо использования GetObject, не могли бы вы создать экземпляр приложения и открыть файл проекта в этом экземпляре?

Sub AddTasks()
   Dim msProj as Object
   Set msProj = CreateObject("Project.Application")

   msProj.FileOpen "C:\projtest.mpp"

   'do stuff to project file here

   msProj.Visible = True
End Sub

Что-то вроде выше (я не могу протестировать приведенный выше код, потому что я ненет MSProject, но аналогичный код работает для MSWord)

0 голосов
/ 06 октября 2010

Для Project UserControl просто указывает, запустил ли пользователь приложение или нет; кажется, только для чтения, потому что это так. Я не сделал то, что вы просите с Project, хотя вот аналогичный пример для Word, пытающегося увидеть и найти запущенные экземпляры Excel. Возможно, это немного помогает:

может-УВА труднодоступной-поголовные экземпляры-of-первенствует

...