如何通过VBA作为模板打开Excel .xltm文件?

时间:2016-05-24 20:45:56

标签: excel vba excel-vba

我有一些用VBA编写的代码来自动创建PowerPoints。 (是的,我知道在这里有一个特殊的地方。但是,有时候,无论是否有意义,都必须做必要的事。)

流程如下:

  1. 打开创建MyTemplate.XLTM的Excel模板文件MyTemplate1.XLTM
  2. 根据需要更新MyTemplate1.XLTM中的数据
  3. MyTemplate1.XLTM保存为NewFile.XLSM
  4. 打开PowerPoint模板文件MyPowerPoint.PPTM
  5. 遍历MyPowerPoint.PPTM中所有幻灯片上的所有对象/形状,查找链接的形状
    1. 对于每个关联的形状,将Shape.LinkFormat.SourceFullNameMyTemplate.XLTM更改为NewFile.XLSM(使用适当的体操将其链接到NewFile.XLSM内的正确位置)
  6. MyPowerPoint.PPTM保存为NewPPT.pptx
  7. 当代码执行步骤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功能?

0 个答案:

没有答案