使用脚本编写创建Powerpoint / Keynote演示文稿?

时间:2010-01-05 13:55:20

标签: vba powerpoint powerpoint-vba presentation keynote

最近我一直在为公司创建PowerPoint演示文稿。我大部分都是在PowerPoint中这样做的。基本上它们是由相同的设计创建的,但只是设置位置中的不同数字,以及用于生成PowerPoint条形图/饼图图形的不同数字。 (基本上插入时会出现这些饼图对象,为您提供更改设计的选项,并在弹出的某些Excel电子表格中输入数字)。

假设我正在为100家公司做这件事:是不是只能指定我需要的所有不同值,并以某种方式创建powerpoint?我可以提供一个设计基础,它只需要进入并改变动态值(没有任何栅格)。

这对于PowerPoint来说甚至都不是问题:如果我可以使用Keynote(例如,自动化饼图,条形图以及使用数字和静态文本设置位置),那么这也可以。

编辑:我提到我知道PowerPoint饼图/条形图是从Xxcel电子表格生成的。我的演讲中大约有3个,以及静态位置中的其他变化值,在100个左右的演示中。我希望编写所有或大部分过程的脚本。

修改:使用PowerPoint 2007或最新版本的Keynote。使用Keynote编写脚本的首选方法可能是AppleScript,使用PowerPoint 2007,Python / Django或宏。

1 个答案:

答案 0 :(得分:2)

抱歉这需要几天的时间才能回复你,不得不解决问题。这是一种快速有效的方式,可以满足您的需求。

  1. 创建启用宏的PowerPoint。
  2. 在上创建一个饼图 首先通过Insert | Chart滑动 功能区中的命令。 Excel会 打开。在列中,水平(类别)轴保持原样(即第1个Qtr,第2个Qrt等)。在图例条目(系列)轴上,展开几列并添加更多数据。确保列名称是唯一的。
  3. 关闭Excel
  4. 按Alt + F11转到VBE。
  5. 将以下代码复制/粘贴到新代码中 模块,改变以下 变量:chartTemplatePath和, 如果需要,sc.Name,对某事 你选择的其他。
  6. 在子程序中单击F5运行。 你现在应该拥有尽可能多的图表 幻灯片,因为有列。
  7. Sub CreateChartDecksandSave()
        Dim chartTemplatePath As String
        chartTemplatePath = "C:\Temp\"
    
        Dim myPPT As Presentation
        Set myPPT = ActivePresentation
    
        Dim mainChart As Chart
        Set mainChart = myPPT.Slides(1).Shapes(1).Chart
    
        Dim scCount As Integer
        scCount = mainChart.SeriesCollection.Count
    
        Dim sc As Series
    
        For i = 1 To scCount
            Set sc = mainChart.SeriesCollection(1)
            myPPT.SaveCopyAs (chartTemplatePath & sc.Name & ".pptx")
            sc.Delete
        Next
    End Sub
    

    如果你正在使用它并且图表数据从主PPT中消失,那没关系,只需选择图表,转到图表工具 | 设计 | 选择数据并重新选择整个数据集。