VSTO加载项可自动导出自定义PowerPoint幻灯片

时间:2010-03-07 03:52:59

标签: vsto powerpoint

我公司的一个小组在一个非常大的PowerPoint幻灯片上工作。并非此套牌中的所有幻灯片都与所有人相关。这个套牌的目的是拥有一个独特的材料来源,人们可以根据所需的演示类型挑选和选择幻灯片。幻灯片包含许多预定义的自定义幻灯片,以简化此过程。

虽然此解决方案在许多情况下运行良好,但我们需要一种简单的方法将自定义节目快速导出到新的演示文稿。我的目标是开发一个VSTO加载项,允许用户选择一个或多个自定义幻灯片放映,然后将幻灯片导出到他们的桌面,我正在寻找一些代码来帮助我顺利上路。< / p>

有谁知道如何将现有的自定义节目导出到新的演示文稿?更好的是,有没有办法允许用户选择和导出一个或多个现有节目?

2 个答案:

答案 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)

这是一种享受! 小心先创建文件的副本!

http://www.pptfaq.com/FAQ00893.htm