我有一些用VBA编写的代码来自动创建PowerPoints。 (是的,我知道在这里有一个特殊的地方。但是,有时候,无论是否有意义,都必须做必要的事。)
流程如下:
MyTemplate.XLTM
的Excel模板文件MyTemplate1.XLTM
。 MyTemplate1.XLTM
中的数据MyTemplate1.XLTM
保存为NewFile.XLSM
MyPowerPoint.PPTM
MyPowerPoint.PPTM
中所有幻灯片上的所有对象/形状,查找链接的形状
Shape.LinkFormat.SourceFullName
从MyTemplate.XLTM
更改为NewFile.XLSM
(使用适当的体操将其链接到NewFile.XLSM
内的正确位置)MyPowerPoint.PPTM
保存为NewPPT.pptx
当代码执行步骤5.1时,它会打开MyTemplate.XLTM
,调整链接位置,然后关闭文件。对于每一个。单。链接。整个PowerPoint演示文稿中的对象。。显然,这很慢。我的模板文件只有621KB,但从网络加载它需要足够的时间,我可以看到温度计栏在加载时填入Excel状态栏。 (是的,我可以与.ScreenUpdating=False
一起运行,但我确实如此,但仍需要时间。)
我创建了PowerPoint后,我可以打开NewFile.xlsm
,然后打开NewPPT.pptx
并快速刷新非常的所有链接。如果我先打开NewFile.xlsm
,则刷新所有链接会使显着更长。
因此,我想在步骤5.1之前在代码中打开MyTemplate.XLTM
一次,这样每次都不需要加载 。但是,当我执行
Dim TemplateXL as Excel.Workbook
Set TemplateXL = XLObj.Workbooks.Open("MyTemplate.xltm")
我收到一个名为MyTemplate1.xltm
的文件,每次必须刷新链接对象时,PowerPoint仍然必须打开MyTemplate.xltm
。
在Windows资源管理器中,我可以右键单击MyTemplate.xltm
,然后选择open
,我正在编辑实际模板本身,而不是基于该模板创建新文档。
如何在Excel VBA代码中模拟Right-Click | Open
功能?