【问题标题】:Programatically create PowerPoint layout using VBA?使用 VBA 以编程方式创建 PowerPoint 布局?
【发布时间】:2014-07-22 00:58:02
【问题描述】:

我正在 VBA 中创建一个 Excel 宏,它将从行中获取数据并使用该数据填充 PowerPoint。我已经在幻灯片中创建了一个文本框布局,我希望能够将其应用于创建的每张新幻灯片,但我需要这样做没有模板。模板的问题是我需要每个想要使用它的用户都安装模板。我尝试将布局保留在隐藏的幻灯片中并将其粘贴到演示文稿中,但是当我这样做时,它们的布局不会保持不变(它们都堆叠在一起)并且它们不会保持其作为文本的功能盒子。解决这个问题的正确方法是什么?

【问题讨论】:

    标签: vba excel powerpoint


    【解决方案1】:

    模板的问题是我需要每个想要使用它的用户都安装模板

    不是真的。虽然从性能的角度来看可能更好,但要将模板保存在本地,您应该能够使用来自共享/网络位置的模板。

    这种方法行得通吗?

    如果没有,请出示您用于复制幻灯片的代码。大概如果您在演示文稿的主布局中定义了自定义布局,则复制/粘贴应该可以工作。我已经使用文本框和文本占位符对此进行了测试。

    【讨论】:

    • 我已通过修改要求以不再需要编辑功能来解决此问题。布局现在已创建并填充在隐藏的 Excel 工作表中,并作为图像粘贴到 PPT 中。感谢您的回复。
    【解决方案2】:

    这个确切的问题最终通过将形状对象保存在 Excel 中的隐藏工作表中,使用 VBA 填充它们,然后使用以下代码粘贴到幻灯片中来解决:

    Sheets("template").Activate
    Sheets("template").Shapes("myShape").Copy
    activeSlide.Shapes.PasteSpecial(DataType:=ppPasteDefault).Select
    

    这使它们成为形状对象,并可在 PowerPoint 中进行编辑。

    请注意,一般的良好做法是避免使用 Activate 和 Select 语句。此代码未在最终产品中使用,仅供参考。

    【讨论】:

      猜你喜欢
      • 2012-10-01
      • 1970-01-01
      • 2018-08-04
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-08
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多