VBA 发送带有 mailto: 的嵌入式 OLE PDF



问题:将 PDF 嵌入到 Excel 工作簿中。此PDF是一个反馈表,其中包含"发送到邮件收件人"按钮。如果不将其嵌入到 Excel 发送工作,当嵌入发送时会导致 Excel 崩溃。

我的想法是打开 OLEObject,

暂时保存嵌入的 PDF,关闭 OLEObject,然后打开保存的 PDF,使其在 Acrobat 实例中运行。打开 OLEObject 已经可以使用:

ThisWorkbook.Sheets(SheetName).Shapes(OLE_Name).Select
Selection.Verb Verb:=xlOpen
但我正在努力解决

以下步骤。怎么做?可能的其他方式?

WIN7, Office 2010, Acrobat Reader

好的。

众所周知,OLEObjects很难使用。我已经做了一些搜索,因为似乎很难相信这不受支持。 这是我第一次尝试使用 Shell 命令复制 OLE 并将其粘贴到已知目录。

但是,您无法复制/粘贴 PDF 嵌入对象,这意味着您不能使用 Shell 命令将其复制/粘贴到临时文件夹/文件路径。所以这是行不通的。

共识似乎是这实际上是不可能的;你所能做的就是打开嵌入的PDF。 看到这里,这里引用这个PDF说:

请参阅 OLE Automation 下的"AxAcroPDFLib.AxAcroPDF"部分。这些是您从阅读器中可以使用的唯一方法

而且,在这里:

正在做的事情依赖于你知道如何与特定的类进行交互,如果你只有几种类型并且知道它们是什么,这可能是可以的,但一般来说,除非 (a) 类支持自动化和 (b) 你知道发出这个命令不起作用。

该类并不真正支持您想要的自动化类型。

可能的解决方案

使用 Acrobat 和 WinAPI

如果您安装了 Acrobat,那么我相信您可以使用 WinAPI 来获取 Acrobat 实例的 hWnd,并以这种方式控制它。我已经仔细阅读了一些文档,但我没有 Acrobat,所以我无法测试。

最新更新