从Powershell运行PowerPoint宏时遇到了麻烦(运行Excel宏已经有效)。由于网络上关于这个主题的信息不多,我愿意你能够帮助我。
我正在尝试在我的工作区域自动化报告,流程是从MS SQL Server查询数据,将数据导入Excel文件,刷新图表,然后使用PowerPoint幻灯片构建最终报告。
PowerPoint文件的图表'与Excel链接(通过文件 - >编辑链接到文件),选择特定图表后,“图表工具”菜单出现在“设计”选项卡上,我只需单击“刷新数据”,图表就会刷新。我已经有一个自动刷新数据的宏。现在我想从Powershell脚本中调用该宏。请参阅下面的代码:
$ppt = New-Object -ComObject Powerpoint.Application
$FilePath = '\\c03d03\public\Data\uvall\IBNB\OnePager.pptm'
$presentation = $ppt.presentations.Open($FilePath)
$ppt.Visible = $true
$app = $ppt.Application
$tst = @('test')
$presentation.Application.Run("RefreshData",[ref]$tst) / 1st way
$app.Run("RefreshData", [ref]@()) / 2nd way
$app.Run("RefreshData", @()) / 3rd way
$app.Run("RefreshData") / 4th way
$presentation.save()
$presentation.close()
$ppt.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($ppt)
这四种调用宏的方法都不起作用。有时它只返回“Sub或函数未定义”的错误,即使它是真正定义的,有时它会返回“你不能在空值表达式上调用方法”和其他错误。
相关:
Run PowerPoint Macro from PowerShell
请注意我正在使用Office 2013
也许有人可以仔细研究并帮助我!