使用VBA以编程方式创建PowerPoint版面?

使用VBA以编程方式创建PowerPoint版面?,vba,excel,powerpoint,Vba,Excel,Powerpoint,我正在VBA中创建一个Excel宏,它将从行中获取数据,并使用这些数据填写PowerPoint。我已经在幻灯片中创建了一个文本框布局,我希望能够应用于创建的每个新幻灯片,但我需要在没有模板的情况下执行此操作。模板的问题是,我需要每个想要使用它的用户安装模板。我曾尝试将布局保留在隐藏的幻灯片中,并将其粘贴到演示文稿中,但当我这样做时,它们的布局并不保持不变(它们都是堆叠在一起的),并且它们也不能保持作为文本框的功能。正确的做法是什么 模板的问题是,我需要每个想要使用它的用户安装模板 不是真的。虽然

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

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

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

这种方法有效吗


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

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

Sheets("template").Activate
Sheets("template").Shapes("myShape").Copy
activeSlide.Shapes.PasteSpecial(DataType:=ppPasteDefault).Select
这将使它们成为形状对象,并在PowerPoint中可编辑


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

我已经通过修改需求来解决这个问题,不再需要编辑功能。布局现在创建并填充在隐藏的Excel工作表中,并作为图像粘贴到PPT中。谢谢你的回复。