VBA使用mailto发送嵌入式OLE PDF:

时间:2014-04-07 13:28:14

标签: vba pdf excel-vba ole excel

问题: 将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

1 个答案:

答案 0 :(得分:0)

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

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

共识似乎是这不可能;你可以用嵌入式PDF做的就是打开它们。请参阅此PDF的herehere说明:

  

参见" AxAcroPDFLib.AxAcroPDF" OLE自动化下的部分。这些是您从Reader

中可以使用的唯一方法

而且,here

  

你所做的事情依赖于你知道如何与特定的类进行交互,如果你只有几种类型并且知道它们是什么,那么可能没问题,除非(a)类支持自动化和(b)你知道发出这个命令的命令是行不通的。

该课程并不真正支持您想要的那种自动化。

可能的解决方案

使用Acrobat和WinAPI

如果您安装了Acrobat,那么我相信您可以使用WinAPI来获取Acrobat实例的hWnd,并以这种方式控制它。 I have perused some documentation,但我没有Acrobat,所以我无法测试。