我公司的一个小组在一个非常大的PowerPoint幻灯片上工作。并非此套牌中的所有幻灯片都与所有人相关。这个套牌的目的是拥有一个独特的材料来源,人们可以根据所需的演示类型挑选和选择幻灯片。幻灯片包含许多预定义的自定义幻灯片,以简化此过程。
虽然此解决方案在许多情况下运行良好,但我们需要一种简单的方法将自定义节目快速导出到新的演示文稿。我的目标是开发一个VSTO加载项,允许用户选择一个或多个自定义幻灯片放映,然后将幻灯片导出到他们的桌面,我正在寻找一些代码来帮助我顺利上路。< / p>
有谁知道如何将现有的自定义节目导出到新的演示文稿?更好的是,有没有办法允许用户选择和导出一个或多个现有节目?
答案 0 :(得分:5)
很好的问题,我自己想长时间做这个,所以花时间为你解决(和我!)。
基本上,你需要a)遍历所有NamedSlideShows
,b)通过SlideID
找到他们的幻灯片,c)添加新的演示文稿,然后d)复制{{1} }幻灯片与原始设计。您可以根据发送命令的方式为一个或所有自定义节目执行此操作。
以下是一个例子:
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
sub只会找到FindShows
中的所有自定义节目,并将它们发送到一个例程,该例程将根据指定的自定义节目名称创建每个新的演示文稿。您可以根据需要自定义。
以下常规是它的核心。有几点需要注意:
ActivePresentation
只会给你
其中幻灯片的NamedSlideShow
。
您可以使用SlideID
识别原始幻灯片
演示文稿 - 它返回一张幻灯片
宾语。然后你只需复制它
粘贴它的设计
原始FindBySlideID
代码中没有任何错误检查,因此需要解决,但它就像一个魅力!
答案 1 :(得分:1)
这是一种享受! 小心先创建文件的副本!