使用脚本能力创建Powerpoint/Keynote演示文稿?

5
最近我一直在为公司创建幻灯片演示文稿,大多数是使用PowerPoint制作的。基本上它们都是由相同的设计创建的,但只是不同的数字放在不同的位置,并且用于生成幻灯片柱状图 / 饼状图等。 (基本上有这些饼状图对象插入时,会给您一个选项来更改设计,并在弹出的Excel电子表格中输入数字)。
假设我要为100家公司做这件事:难道没有一种方法可以仅指定我需要的所有不同值,并以某种方式创建幻灯片吗?我可以提供设计基础,它只需要进去并更改动态值(无栅格化内容)。
这甚至不是针对PowerPoint的问题:如果我可以使用Keynote完成此操作(自动化饼图,条形图和带有数字和静态文本的位置),那也可以。
编辑:我提到我知道PowerPoint饼图/棒图是从Excel电子表格生成的。我的演示文稿中有大约3个这样的电子表格,以及其他静态位置中的变化值,在100多个演示文稿中。我正在寻求脚本化所有或大部分过程。
编辑:使用PowerPoint 2007或最新版本的Keynote。 Keynote的首选脚本编写方法可能是AppleScript,PowerPoint 2007则使用Python/Django或宏。

当您将图表插入PowerPoint幻灯片时,它已经是一个小的Excel电子表格,保存着数值。这让我想知道你现在是如何制作图表的。 - Joey
@xckpd7:下面的回答是否解决了你的问题? - Todd Main
1个回答

2

抱歉让您等了几天,我需要解决一个问题。以下是一种快速有效的方法来实现您的要求。

  1. 创建一个启用宏的PowerPoint文档。
  2. 通过Ribbon中的Insert|Chart命令在第一张幻灯片上创建一个饼图。Excel会自动打开。在列中,对于水平(类别)轴,保持原样(即第1季度,第2季度等)。对于图例条目(系列)轴,展开几列并添加更多数据。确保列名唯一。
  3. 关闭Excel。
  4. 按Alt+F11进入VBE。
  5. 将下面的代码复制/粘贴到新模块中,并更改以下变量:chartTemplatePath和(如果需要)sc.Name为您选择的其他名称。
  6. 单击子程序中的F5以运行。现在您应该有与列数相同的幻灯片。

.

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中消失了,没关系,只需选择该图表,进入图表工具 | 设计 | 选择数据,然后重新选择你的数据集作为整个表格即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接