Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PowerPoint中使用VBA将OLE对象附加到Outlook电子邮件_Vba_Outlook_Powerpoint_Email Attachments - Fatal编程技术网

如何在PowerPoint中使用VBA将OLE对象附加到Outlook电子邮件

如何在PowerPoint中使用VBA将OLE对象附加到Outlook电子邮件,vba,outlook,powerpoint,email-attachments,Vba,Outlook,Powerpoint,Email Attachments,我在PowerPoint幻灯片中嵌入了一个OLE对象,我正在尝试制作一个宏,该宏将打开Outlook,并自动将OLE对象添加为附件 OLE对象(pdf)是使用普通的“插入>对象>从文件创建>显示为图标”方法插入到幻灯片中的,因此它在我要从中启动宏的幻灯片上显示为一个小pdf图标 我已经找到了打开Outlook、显示新邮件以及所有这些的基本VBA,但我无法让附件正常工作。以下是我正在使用的代码: Sub SendEmailwithAttachment() Dim OutApp As Object

我在PowerPoint幻灯片中嵌入了一个OLE对象,我正在尝试制作一个宏,该宏将打开Outlook,并自动将OLE对象添加为附件

OLE对象(pdf)是使用普通的“插入>对象>从文件创建>显示为图标”方法插入到幻灯片中的,因此它在我要从中启动宏的幻灯片上显示为一个小pdf图标

我已经找到了打开Outlook、显示新邮件以及所有这些的基本VBA,但我无法让附件正常工作。以下是我正在使用的代码:

Sub SendEmailwithAttachment()

Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

strbody = "Dear []:<br>" & _
          "<br><br>Attached is .<br>" & _
          "<br><br>Let me know if you have any questions.<br>" & _
          "<br><br>Thank you,"

On Error Resume Next

With OutMail
    .To = ""
    .CC = ""
    .BCC = ""
    .Subject = ""
    .HTMLBody = strbody 
    .Attachments.Add (ActivePresentation.Slides(2).Shapes("Attachment"))
    .Display
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Sub-sendmailwithattachment()
Dim OutApp作为对象
将邮件变暗为对象
像弦一样暗的链子
Set-OutApp=CreateObject(“Outlook.Application”)
Set-OutMail=OutApp.CreateItem(0)
strbody=“亲爱的[]:
”和_ “

已附加。
”&_ “
如果您有任何问题,请告诉我。
”&_ “
谢谢你,” 出错时继续下一步 发邮件 .To=“” .CC=“” .BCC=“” .Subject=“” .HTMLBody=strbody .Attachments.Add(ActivePresentation.Slides(2).形状(“附件”)) 陈列 以 错误转到0 发送邮件=无 设置应用程序=无 端接头
我以前使用了完全相同的代码通过文件路径附加文件,所有操作都非常完美。但是现在我需要将文件嵌入到PowerPoint中,而不仅仅是引导代码从文件路径附加

PowerPoint和Outlook都是2010版


任何帮助都将不胜感激。

Outlook对象模型不允许添加嵌入式OLE附件

您可以使用WordEditor方法将oleObect复制/粘贴到Outlook中。Body和htmlBody是使用outlookbody的另外两种方法


当然,链接而不是嵌入的对象可能是另一回事。

Dmitry-感谢您的澄清,我没有意识到这一点。有什么解决办法吗?或者我如何实现嵌入文件附件自动化的其他想法?您能将PDF保存为文件吗?然后可以将文件名传递给Attachments.Add.Dmitry-它必须来自嵌入的文件。作为一种解决方法,您认为是否可以暂时保存嵌入的文件,然后将该临时文件用作附件?对不起,我对PowerPoint了解不多。