Presentations.Open требует, чтобы PowerPoint 2007 был открыт?

У меня есть макрос runTest в файле PowerPoint test.pptm, который я хочу вызвать с помощью следующего сценария VB. Все работает хорошо, когда сценарий вызывается на компьютере с Office 2010, но сценарий будет работать только с Office 2007, если перед вызовом сценария было открыто приложение PowerPoint. Мне было бы интересно услышать, сталкивался ли кто-нибудь с подобной проблемой, или услышать о каких-либо возможных решениях.

Option Explicit
On Error Resume Next

RunProcess

Sub RunProcess() 

    Dim pptApp 
    Dim pptPresentation 
    Set pptApp = CreateObject("PowerPoint.Application") 
    Set pptPresentation = pptApp.Presentations.Open("C:\test.pptm", True) 
    pptApp.Run "test.pptm!runTest"
    pptApp.Quit 
    Set pptPresentation = Nothing 
    Set pptApp = Nothing 

 End Sub 

person Franzl    schedule 03.09.2013    source источник
comment
Отладка VBScript 101: удалите On Error Resume Next и посмотрите, какую ошибку вы получите.   -  person Ansgar Wiechers    schedule 03.09.2013


Ответы (2)


Я решил проблему, добавив

    pptApp.Visible = True

после создания pptApp и до открытия презентации.

person Franzl    schedule 05.09.2013

В случае, если ему нужно запустить Powerpoint, я бы просто инициировал запуск как часть vbscript

Set WshShell = wscript.CreateObject("wscript.Shell")
WshShell.Run "C:\Program Files (x86)\Microsoft Office\Office12\POWERPNT.EXE"

Вы можете создать некоторую обработку ошибок, чтобы увидеть, какая версия установлена, и вызвать соответствующий exe-файл.

person ServerGuy    schedule 04.09.2013