我在Excel VBA中工作,创建PowerPoint演示文稿。
我试图在每张幻灯片上放置 Next 和 Previous 按钮。我使用下面的代码:
Dim ppApp As PowerPoint.Application, ppPres As PowerPoint.Presentation, ppSlide As PowerPoint.Slide
Dim shpNextButton As PowerPoint.Shape
Set ppApp = CreateObject("Powerpoint.Application")
Set ppPres = ppApp.Presentations.Open("C:\Users\test1.pptm")
Set ppSlide = ppPres.Slides.Add(ppPres.slides.count + 1, ppLayoutBlank)
Set shpNextButton = ppSlide.Shapes.AddShape(msoShapeActionButtonForwardorNext, 750, 480, 40, 12.5)
With shpNextButton.TextFrame.TextRange
.Text = "Next"
With .Font
.Size = 10
.name = "Arial"
End With
End With
shpNextButton.ActionSettings(ppMouseClick).Action = ppActionNextSlide
此代码创建带有正确文本的按钮。但是,在PowerPoint幻灯片中,该按钮是可单击的。当我点击它时,它就像一个普通的形状。
答案 0 :(得分:0)
当我在PowerPoint VBE中使用其改编版本(删除第1,3,4行并为第5行设置当前幻灯片的引用)时,您的代码适用于我,所以我唯一能想到的是如果尚未将PowerPoint库添加到项目中,则不会设置“pp”常量。如果你输入这个,你会在立即窗口中得到什么?
?ppActionNextSlide
如果一切正常,它应该返回1。如果它返回0,则相当于 ppActionNone ,这将解释正在发生的事情。
顺便说一下,你的代码在我的4:3幻灯片之外添加了按钮,所以我假设你使用的是16:9幻灯片布局。最好引用侧面的右侧少一个偏移来避免这个潜在的问题:
ActivePresentation.PageSetup.SlideWidth