excel - 在 Excel VBA 用户窗体中显示 PDF

标签 excel vba pdf adobe

我正在运行 Excel 2016,如果以下是兼容性问题,这可能是相关的...

简而言之,我正在尝试显示嵌入在 Excel 中的用户窗体中的 PDF。

我有一个用户表单,例如UserForm1

我启用了以下额外引用:

  • Microsoft Visual Basic for Applications 扩展性 5.3
  • Adobe Acrobat 浏览器控件类型库 1.0

这允许我将 Adobe PDF Reader 添加为“附加控件”

Additional Controls dialog

该控件显示为阴影框图标(左下角),我不确定它的意思。然后,如果我尝试将这些对象之一添加到 UserForm1 (以编程方式和在设计 View 中),则会出现错误

Element not found

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

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

这是我从 Adob​​e 论坛主题中获取的:https://forums.adobe.com/thread/1065554

在线资源表明 AcroPDF 控件可能不再受支持。如果是这样,还有其他方法可以实现我想要的吗?

最佳答案

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

它需要包括额外的控制

微软网络浏览器

在用户窗体上添加一个名为 WebBrowser1 的 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,但是,引用我的评论:

“使用 html 部分更安全,具体取决于机器设置,有时直接导航会启动下载而不是显示。”

关于excel - 在 Excel VBA 用户窗体中显示 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41292195/

相关文章:

excel - 在 token 函数中产生多个值(MS excel)

c# - C# 中 Excel 2016 的 oledb 连接字符串

pdf - 如何替换/删除 PDF 文件中的文本

html - 从 HTML 格式到 PDF

Excel VBA 宏 : User Defined Type Not Defined

python - 在python中运行excel宏并保存结果

c++ - 从 VBA 访问 C++ 中的嵌套结构

excel - 当数组为空时处理错误 9

c# - 适用于 Windows 8.1 的 MIME pdf

VBA复制行范围