我有一个适度但不断增长的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
答案 0 :(得分:1)
首先,似乎无法直接设置SlideMaster
属性。但是,您可以尝试不同的方法。
如果要将模板设置为打开的演示文稿或对Presentation
对象的引用:
ppPres.ApplyTemplate(ActivePresentation.FullName)
如果要将模板设置为磁盘上的文件:
ppPres.ApplyTemplate("C:\PATH-TO-FILE.potx")
第二个,我不太了解你的循环中的逻辑。首先,您获取要循环的文件列表,然后循环所有打开的演示文稿,并在每次没有匹配时打开文件vFile
一次?如果您打开了许多不相关的演示文稿,那么会多次打开vFile
几次。
我的建议:
colFiles
ApplyTemplate("C:\PATH-TO-FILE.potx")
命令设置模板(使用ActivePresentation
有时会导致意外结果:-))