0

我有一个适度但不断增长的 PowerPoint 演示文稿集合(约 20 个),它们都基于同一张母版幻灯片。我想做的是确保如果我在任何这些文件上创建新布局或修改现有布局,我可以更新所有其他演示文稿以以编程方式反映这一点。这是我的尝试。我已经显示了它在该行上方生成的错误。

Sub UpdateTemplates()

Dim colFiles As New Collection
Dim vFile As Variant
Dim ppPres As Presentation

RecursiveDir colFiles, "C:\Users\Debra\Dropbox\School\Mathematics\Notes\Data", "*.pptm", True

For Each vFile In colFiles
    Debug.Print "Updating templates in " & vFile
    Set ppPres = Presentations.Open(vFile)
    ppPres.ApplyTemplate ("C:\Users\Debra\Dropbox\School\Mathematics\Notes\Topic Blank.potm")

Next vFile

End Sub
4

1 回答 1

1

首先,您似乎无法SlideMaster直接设置属性。但是,您可以尝试不同的方法。

如果要将模板设置为打开的演示文稿或对Presentation对象的引用:

ppPres.ApplyTemplate(ActivePresentation.FullName)

如果要将模板设置为磁盘上的文件:

ppPres.ApplyTemplate("C:\PATH-TO-FILE.potx")

其次,我不太了解您循环中的逻辑。首先,您获得要循环的文件列表,然后循环所有打开的演示文稿并在vFile每次没有匹配时打开文件一次?如果您打开了许多不相关的演示文稿,这将打开vFile几次。

我的建议:

  1. 关闭所有打开的演示文稿
  2. 环形colFiles
  3. 使用命令设置模板ApplyTemplate("C:\PATH-TO-FILE.potx")(使用ActivePresentation有时会导致意外结果:-))
于 2012-08-31T09:00:56.220 回答