大的问题,我想这个很长一段时间做自己,所以走上弄清楚你的时间(和我!)。
基本上,你会通过所有NamedSlideShows
想要一个)循环,b)通过SlideID
找到他们的幻灯片,c)加入新的演示文稿,然后d)复制在NamedSlideShow
幻灯片与原设计。您可以根据您在命令中发送的方式为一个或全部自定义节目执行此操作。
下面是一个例子:
Sub FindShows()
Dim p As PowerPoint.Presentation
Set p = PowerPoint.ActivePresenation
Dim cShow As PowerPoint.NamedSlideShow
For Each cShow In p.SlideShowSettings.NamedSlideShows
SaveCustomShow (cShow.Name, p)
'If using PowerPoint 2010 use the following line instead:
'SaveCustomShow cShow.Name, p
Next
End Sub
的FindShows
子刚刚找到所有的自定义显示在ActivePresentation
,并将它们发送到将创建一个基于指定的自定义放映的名称每个新presenation的例程。您可以根据需要进行自定义。
下面的例程是它的核心。有几件事情需要注意:
- 要通过 源滑动的滑盖设计派,你必须设置复制幻灯片使用 设计明确地 。
- A
NamedSlideShow
只会给你 其中的幻灯片SlideID
。 您可以使用FindBySlideID
然后 确定幻灯片中原始的 演示文稿 - 它返回幻灯片 对象。然后你只需复制它,并 粘贴它的原始设计 。
Sub SaveCustomShow(showName As String, p As Presentation)
Dim cShows As PowerPoint.NamedSlideShows
Set cShows = p.SlideShowSettings.NamedSlideShows
Dim cSlideIDs As Variant
cSlideIDs = cShows(showName).SlideIDs
Dim destinationPath As String
destinationPath = "C:\Temp\"
Dim newP As PowerPoint.Presentation
Set newP = PowerPoint.Presentations.Add(WithWindow:=False)
With newP
.SaveAs destinationPath & cShows(showName).Name
Dim s As PowerPoint.Slide
Dim e As Integer
For e = 1 To UBound(cSlideIDs)
Set s = p.Slides.FindBySlideID(SlideID:=cSlideIDs(e))
s.Copy
.Slides.Paste.Design = s.Design
Next
.Save
.Close
End With
Set newP = Nothing
End Sub
这里没有任何错误代码检查,这样就需要被制定出来,但它就像一个魅力!