【问题标题】:Creating Powerpoint/Keynote Presentations with scriptability?创建具有脚本能力的 Powerpoint/Keynote 演示文稿?
【发布时间】:2010-01-05 13:55:20
【问题描述】:

最近我一直在为公司制作 PowerPoint 演示文稿。我主要是在 PowerPoint 中执行此操作。基本上它们是由相同的设计创建的,但只是在设置的地方有不同的数字,以及用于生成 PowerPoint 条形图/饼图的不同数字。 (插入时基本上有这些饼图对象,您可以选择更改设计,并在弹出的一些excel电子表格中输入数字)。

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

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

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

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

【问题讨论】:

  • 当您将图表插入到 PowerPoint 幻灯片中时,它已经是一个小的 Excel 电子表格,其中包含值。让我想知道你之前是怎么做图表的。
  • @xckpd7:下面的答案能回答你的问题吗?

标签: vba powerpoint presentation keynote


【解决方案1】:

抱歉,这需要几天时间才能回复您,必须解决一个问题。这是一种快速有效的方法来满足您的要求。

  1. 创建启用宏的 PowerPoint。
  2. 在 通过插入|图表的第一张幻灯片 功能区中的命令。 Excel 将 打开。在列中,水平(类别)轴保持原样(即 1st Qtr、2nd Qrt 等)。在图例条目(系列)轴上,展开几列并添加更多数据。确保列名是唯一的。
  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 中消失了,那没关系,只需选择图表,转到 图表工具 | 设计 | 选择数据并重新选择您的数据集作为整个表格。

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    相关资源
    最近更新 更多