在Excel VBA中保存PowerPoint

时间:2013-03-25 17:43:33

标签: excel excel-vba powerpoint powerpoint-vba vba

我的代码可以创建一个由excel文件中的一些图像组成的新powerpoint。我想使用字符串变量保存文件以定义其名称。我已经尽职尽责地寻找没有成功的解决方案,这让我感到惊讶,这是基于我正在努力完成的任务的基本原理。截至目前,我有......

newPowerPoint.ActivePresentations.SaveAs filenamestring, 1
newPowerPoint.ActivePresentations.Close

但我一直收到大量的错误消息。我将newPowerPoint定义为另一个模块中的public

Public newPowerPoint As powerpoint.Application

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为您在不实际创建Powerpoint.Application实例的情况下确定变量oPPTApp的大小。

Public ppApp As PowerPoint.Application

Sub PPTFile()

Dim ppPres As Presentation
Dim fileNameString As String

fileNameString = "C:\testPPT.pptx" '<change to your file path/name

'Create an instance of PPT to work with
Set ppApp = CreateObject("Powerpoint.Application")
ppApp.Visible = True

'Create a new presentation (or you can access an existing file with ppApp.Presentations.Open
Set ppPres = ppApp.Presentations.Add

'Save:
ppPres.SaveAs fileNameString, 1

'Quit the instance of PPT that you initiated above.
ppApp.Quit

End Sub

修改

在使用AddSlide方法添加幻灯片时,您需要引用CustomLayout

Dim sldCount As Integer

sldCount = ppPres.Slides.count
ppPres.Slides.AddSlide sldCount + 1, ppPres.Slides(sldCount).CustomLayout
'Once you've added the slide, then set using Layout:
ppPres.Slides(sldCount + 1).Layout = ppLayoutBlank

或者,您可以使用接受.Add参数的旧Layout方法,而不是.AddSlide(需要CustomLayout):

ppPres.Slides.Add sldCount + 1, ppLayoutBlank