使用VBA编程地创建PowerPoint布局



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

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

没有。虽然从性能的角度来看,最好将模板保存在本地,但您应该能够从共享/网络位置使用模板。

这个方法可行吗?

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

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

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

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

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

最新更新