如何在发送前在电子邮件中显示附件,但如何在发送后从电子邮件底部的文件名中删除文件名

时间:2019-07-11 08:50:07

标签: vba outlook

我正在尝试创建一个VBA代码(这是我的新手),它将PDF附加到电子邮件中。我已经做好所有工作(创建电子邮件,附加文件,然后按“发送”,电子邮件到达目的地),但是当我使用olByValue时,文件名在电子邮件末尾显示为文本发送后(除了实际附件,因为它应该显示在电子邮件顶部)。

我试图找到一种隐藏该文本的方法。我尝试使用olByValue,0,但是我们工作中的部分协议包括在发送之前手动对所有电子邮件进行质量检查,以免意外地将客户端A的数据发送到客户端B(因此,宏不包含.Send命令) 。是否可以在发送前将PDF附加到电子邮件中,但在发送后不以文本形式显示文件名的情况下查看PDF?

我正在使用Excel for 365创建电子邮件正文并将数据发送到Outlook365。

与附件有关的代码行如下。感谢您的任何帮助,如果我不清楚某些事情,请告诉我。

If Range("AD45") = "Update" And Range("AJ36") = "1" And Range("AJ37") = "Yes" Then
            .Attachments.Add Range("AB26").Value, olByValue, 0
            .Body = Range("Z80").Value & vbNewLine & vbNewLine & vbNewLine & vbNewLine
    End If

1 个答案:

答案 0 :(得分:0)

位置由消息格式决定。

Rich Text格式支持嵌入式附件,因此附件显示在邮件正文中。纯文本和HTML格式的电子邮件不支持此功能,而是在邮件标题下但在邮件正文上方的单独行中显示附件。有关更多信息,请参见Attachments show up in the message body

例如,在将文件附加到电子邮件之前,您需要设置BodyFormat属性,该属性设置一个OlBodyFormat常量来指示正文文本的格式。 :

With objMail  
 'Set body format to HTML  
 .BodyFormat = olFormatHTML  
 .HTMLBody = "<HTML><H2>The body of this message will appear in HTML.</H2><BODY>Type the message text here. </BODY></HTML>" 

 .Display  
 End With