使用Excel和VBA从PowerPoint文件生成PDF文件
我正在尝试从PowerPoint文件生成PDF文件。这一切都应该通过单击带有VBA脚本的Excel文件中的按钮来完成。到目前为止,我已经成功地编写了下面的代码。它会正确打开PowerPoint文件,但也会显示错误:“对象不支持此属性或方法”使用Excel和VBA从PowerPoint文件生成PDF文件,excel,vba,powerpoint,Excel,Vba,Powerpoint,我正在尝试从PowerPoint文件生成PDF文件。这一切都应该通过单击带有VBA脚本的Excel文件中的按钮来完成。到目前为止,我已经成功地编写了下面的代码。它会正确打开PowerPoint文件,但也会显示错误:“对象不支持此属性或方法” strPath=“Q:\X\Test.pptx” 设置objApp=CreateObject(“Powerpoint.Application”) objApp.Visible=True“False”或True 设置wbToRun=objApp.Present
strPath=“Q:\X\Test.pptx”
设置objApp=CreateObject(“Powerpoint.Application”)
objApp.Visible=True“False”或True
设置wbToRun=objApp.Presentations.Open(strPath)
wbToRun.ExportAsFixedFormat“”、ppFixedFormatTypePDF、ppFixedFormatIntentScreen、msoCTrue、PPPrintHandoutAuthorIzontalFirst、ppPrintOutputBuildSlides、msoFalse、False、False、False、False
objApp.DisplayAlerts=False
wbToRun,关闭
objApp.退出
希望你能帮助我解决我的问题。谢谢。我能够重现您的错误。以下解决方案对我有效。确保已启用对Microsoft Powerpoint对象库的引用
Sub ppttest5()
Dim savePath As String
Dim AppPowerPoint
Dim wbToRun
Set AppPowerPoint = CreateObject("PowerPoint.Application")
'Location of saved file
savePathFN = "C:\mydirb\test.pdf" 'change as per your path
AppPowerPoint.Visible = True
Set wbToRun = AppPowerPoint.Presentations.Open("C:\mydirb\Test.pptx") 'change location of file path
wbToRun.SaveAs savePathFN, ppSaveAsPDF
wbToRun.Close
AppPowerPoint.Quit
Set OpenPresentation = Nothing
Set AppPowerPoint = Nothing
End Sub
哪一行触发了错误?这一行:
wbToRun.ExportAsFixedFormat“”、ppFixedFormatTypePDF、ppFixedFormatIntentScreen、msoCTrue、ppPrintHandoutAuthorizontalFirst、ppPrintOutputBuildSlides、msoFalse、、False、False、False、False
谢谢!但是,仍然收到一个错误:“系统错误&H80070057(-2147024809)参数不正确。”你知道可能是什么错误吗?@user3527005我上传了一个压缩文件,其中包含示例pptx文件、代码文件和生成的pdf文件。请在维护相同或类似的目录结构时进行检查,并检查对您的Power Point对象库版本的引用。我还检查了使用ExportAsFixedFormat
运行的程序,它在这一行给出了类型不匹配错误。这是一个常见的错误,有很多建议可以克服这个错误。我的dropbox参考是。我在一些尝试中的努力无法解决。@user3527005关于“系统错误&H80070057(-2147024809)”,其中一个可能的原因可能是形状名称拼写错误。在一些引用之后,我向您推荐了我的试用方法,在ExportAsFixedFormat
上获得类型不匹配后,遵循所有预防措施,如正确的变量和对所有可选参数的引用,问题无法解决,但SaveasPDF
成功。非常感谢。还是有错误。我尝试过的一些有效方法是:wbToRun.SaveAs“Q:\X\1.pdf”
,因此基本上是“ppSaveAsPDF”部分抛出错误。有其他选择吗?@user3527005您可以在VBE Tools-References中根据您的版本尝试我的宏文件调整Power Point对象库吗?您是否仍然收到错误。我可以在2016版本的系统上生成带有建议代码的pdf。我还将生成的pdf文件也包含在压缩文件夹中。您也可以在其他计算机上尝试,因为如果Excel文件损坏,也会生成系统错误。
Sub ppttest5()
Dim savePath As String
Dim AppPowerPoint
Dim wbToRun
Set AppPowerPoint = CreateObject("PowerPoint.Application")
'Location of saved file
savePathFN = "C:\mydirb\test.pdf" 'change as per your path
AppPowerPoint.Visible = True
Set wbToRun = AppPowerPoint.Presentations.Open("C:\mydirb\Test.pptx") 'change location of file path
wbToRun.SaveAs savePathFN, ppSaveAsPDF
wbToRun.Close
AppPowerPoint.Quit
Set OpenPresentation = Nothing
Set AppPowerPoint = Nothing
End Sub