如何用VBA将图片添加到邮件正文

文摘   教育   2024-09-05 19:50   广东  
前几天写了一篇使用VBA自动发送邮件,虽然能够带附件,但是有一个问题就是邮件正文没法插入图片。只能插入文字。今天我们来看看,如何使用VBA将图片和文字一起插入邮件正文,下面我们来看看代码吧。
在写代码前,由于我们是在Excel中写操作Outlook的代码,所以为了能够方便查看对象的属性,我们此处使用前期绑定。
一、前期绑定

此处添加两个前期绑定,

Microsoft Outlook 16.0 Object Library

Microsoft Word 16.0 Object Library

此处为什么要对Word进行前期绑定引用呢?因为邮件的正文其实是一个Word文档页面。我们可以像写入Word那样进行书写邮件,如果你会Word VBA,那么今天这个问题就很简单啦。

二、代码

Sub InsertImageToEmailBody2()    Dim olApp As Outlook.Application    Dim olMail As Outlook.MailItem    Dim olInspector As Outlook.Inspector    Dim olDocument As Word.Document    Dim olRange As Word.Range    Dim olShape As Word.InlineShape    Set olApp = New Outlook.Application    Set olMail = olApp.CreateItem(olMailItem)
Set olInspector = olMail.GetInspector Set olDocument = olInspector.WordEditor Set olRange = olDocument.Content olMail.Display With olDocument.Application.Selection .Text = "Hello!!" & Chr(10) & "以下是拾柒的微信二维码" & Chr(10) & Chr(13) .EndKey Set olShape = .InlineShapes.AddPicture("C:\Users\jares\Pictures\联想截图\联想截图_20230328204905.png") .EndKey .Text = Chr(10) & Chr(13) & "如有需要定制或答疑可添加" End With With olMail .To = "jaresfzz@163.com" .Subject = "这是一封带图片的测试邮件" .Send End WithEnd Sub
第2行:定义Outlook APP
第3行:定义邮件
第4行:定义邮件检查器
第5行:定义Word文档
第6行:定义Word区域
第7行:定义Word的图片
第8行:赋值Outlook APP对象变量
第9行:创建新邮件
第11行:获取邮件检查器
第12行:获取Word编辑器
第13行:获取邮件编辑区域内容
第14行:显示邮件
第15行:对编辑区域内容进行设置
第16行:赋值文本
第17行:定位结尾
第18行:插入图片
第19行:定位结尾
第20行:赋值文本
第22-26行:设置收件人,主题,发送邮件,如果不想发送,可以去掉25行的.send

如果我们调试完毕,也可将文中的代码改为后期绑定,好了,下面我们来看看效果。

效果如下:

好了,本期教程就到这里啦,走过路过的点个关注分享一下吧,谢谢啦

求关注-求星标-求点赞-求看-求分享
最近创建了一个VBA学习交流群,如有需要进群可以添加微信 jaresfzz备注进群

Excel应用教程
主要提供Excel vba,函数,图表,数据透视表,pq,Js等教程
 最新文章