VBA Excel,在UserForm中显示PDF

时间:2016-12-22 21:54:16

标签: excel vba excel-vba pdf adobe

我正在运行Excel 2016,并且我不确定我是否有简单的兼容性问题或者什么,希望有人可以帮我找到修复或建议替代方案...

简而言之,我正在尝试在Excel中显示嵌入在UserForm中的PDF。

我有一个UserForm,比如UserForm1

我已启用以下额外参考:

Microsoft Visual Basic for Applications Extensibility 5.3

Adobe Acrobat Browser Control Type Library 1.0

这允许我将Adobe PDF Reader添加为"附加控制"

enter image description here

控件显示为阴影框图标(左下角),我不确定它的含义。然后,如果我尝试将其中一个对象添加到UserForm1(在编程和设计视图中),它会给我一个错误

  

未找到元素

作为参考,我使用的VBA的相关行是:

Dim PDFviewer As AcroPDF
Set PDFviewer = PDForm.Frame1.Controls.Add("AcroPDF.PDF.1")

我从这个Adobe论坛帖子中获取的内容:https://forums.adobe.com/thread/1065554

在线资源表明,可能不再支持AcroPDF控件。如果是这样,还有另一种方法可以达到我的目的吗?

由于

1 个答案:

答案 0 :(得分:7)

作为使用AcroPDF的替代方法,请尝试使用WebBrowser对象。

它需要包含附加控件

Microsoft Web Browser

在名为WebBrowser1

的UserForm上添加WeBrowser
Private Sub UserForm_Click()
    Me.WebBrowser1.Navigate "about:blank"
    Me.WebBrowser1.Document.write "<HTML><Body><embed src=""C:\temp\SO_Answers\test.pdf"" width=""100%"" height=""100%"" /></Body></HTML>"
End Sub

您可以直接.Navigate到PDF,但是,引用我的评论:

&#34;使用html部分更安全,具体取决于机器设置,有时直接导航会启动下载而非显示。&#34;