在VBA PowerPoint中如何向空演示文稿添加新幻灯片

4

我希望在一份空白的演示文稿中添加新的幻灯片,但是关于幻灯片布局我遇到了困难。

我正在使用如下内容:

Set pptLayout = ActivePresentation.Designs(1).SlideMaster.CustomLayouts(1)
Set sld = ActivePresentation.Slides.AddSlide(1, pptLayout)
sld.Design = ActivePresentation.Designs(1)

当我的演示文稿中已经有幻灯片时,这段代码可以正常工作,但是我没有!

那么,我的问题是:如果我没有现成的幻灯片来设置布局,我该如何插入一张幻灯片呢? 也就是说,在代码的第一行中,我正在使用幻灯片1来定义布局,以便在.AddSlide中使用它。


代码对我来说运行良好。我创建了一个新的PowerPoint。删除了起始幻灯片,然后运行了代码。它添加了一个新的幻灯片。 - Sam
太奇怪了,它在你那里能运行!我不是VBA专家,无法解释原因。 - Mohammed Hashim
2个回答

1
您可以简单地使用如下代码:

您可以简单地使用如下代码:

ActivePresentation.Slides.Add Index:=ActivePresentation.Slides.Count + 1, Layout:=ppLayoutCustom

通过这种方式,您不需要从其他地方获取布局,您可以更改它,并查看屏幕截图中的其他可能性:

enter image description here


嗨,它给了我ActiveX无法创建对象的错误,即使我已经包含了对Microsoft Ppt库的引用,你有关于这个错误的任何想法吗? - Stupid_Intern
@newguy:你能创建一个问题并在这里粘贴链接吗?没有看到你的代码很难解决!(而且那个特定的错误非常痛苦...) - R3uK
这是一个关于ActiveX无法创建对象的PowerPoint VBA问题,现在已经解决了。 - Stupid_Intern
请问你从哪里得到这张表格的? - chikitin
@chikitin:它被称为“对象浏览器”,您可以通过在Windows上按F2来访问它,我认为它在Mac上不存在。 - R3uK

0

OP的代码的变体对我有效

Dim appPPT As PowerPoint.Application
dim ppObj As PowerPoint.Presentation
dim slideObj As PowerPoint.Slide
dim pptLayout As CustomLayout

Set appPPT = New PowerPoint.Application
Set ppObj = appPPT.Presentations.Add
Set pptLayout = ppObj.Designs(1).SlideMaster.CustomLayouts(7)
Set slideObj = ppObj.Slides.AddSlide(1, pptLayout)

通常第7个CustomLayout是空白幻灯片。但并不总是如此。因此,为了更安全地创建空白幻灯片,最好像R3uK所说的那样使用“ActivePresentation.Slides.Add ActivePresentation.Slides.Count + 1, ppLayoutBank”。 - konahn

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