想利用VBA自动创建/发送OUTLOOK邮件,可以借助MailItem的Body属性或HTMLBody属性,代码模板如下:

Dim objOutlook As Outlook.Application '需要引用Microsoft Outlook 16.0 Object Library对象模型
Dim objMail As MailItem
Set objOutlook = New Outlook.Application
Set objMail = objOutlook.CreateItem(olMailItem)
With objMail
.To = "XXXXXXXXXX.com" '收信的人
.CC = "" '抄送的人
.BCC = "" '暗抄送的人
.Attachments.Add ThisWorkbook.FullName '使用多个.Attachments.Add语句可以添加多个附件
.Subject = "Test Email" '邮件标题
.Body = "Hello," & vbCrLf & vbCrLf & "This is a test email, please do not respond." & vbCrLf & vbCrLf & "Best regards," '邮件正文
.Display '将邮件显示出来
.Save '保存邮件,使用此属性可以在outlook中的drafts看到创建的邮件
.Send '发送邮件
End With
Set objMail = Nothing
Set objOutlook = Nothing

上述代码中的属性可以按需设置,邮件正文显示内容比较单一,如果想实现邮件内容中有表格,有超链接,有好看的签名,有图片等等,可以使用HTMLBody属性替代Body属性,这时候编写正文内容就像是在编写一个小型的网页,需要稍微懂些html和css,甚至javascript的基础知识,然后把写好的网页代码放进字符串传给HTMLBody属性即可。

'正文
body= "<Font Face=Verdana Size=""2"" Color=black>Hi all, <br /><br />Here comes the daily work reminder summary.<br /><br />" '超链接
linkpath= "\\XXXXXXXXXX\Test book.xlsx"
linkstr = "<a href=" & """" & linkpath & """" & ">" & linkpath & "</a><br /><br />" '插入桌面上的2.bmp这张图片
picstr = "<img src=" & """" & "file://" & Environ("userprofile") & "/Desktop/2.bmp" & """" & "><br /><br />" '插入表格
tablestr = "<table bordercolor=""#000000"" style=""width:50%;"" border=""1"" cellspacing=""0"" cellpadding=""2""><tbody><tr><td><div align=""center""> <strong><span style=""font-family:Verdana;"">1</span></strong><br /> </div> </td> <td> <div align=""center""> <strong><span style=""font-family:Verdana;"">2</span></strong><br /> </div> </td> </tr> <tr> <td> <div align=""center""> <span style=""font-family:Verdana;"">3</span><br /> </div> </td> <td> <div align=""center""> <span style=""font-family:Verdana;"">4</span><br /> </div> </td> </tr> <tr> <td> <div align=""center""> <span style=""font-family:Verdana;"">5</span><br /> </div> </td> <td> <div align=""center""> <span style=""font-family:Verdana;"">6</span><br /> </div> </td> </tr> </tbody></table><br />"

'插入签名
conhtml = "<Font Face=Verdana Size=""2"" Color=black>Kind & Best regards<br />"
conhtml = conhtml & Application.UserName & "<br /><br />"
conhtml = conhtml & "Software Engineer<br />"
conhtml = conhtml & "XXXXXX Shenzhen Ltd.<br /><br />"
conhtml = conhtml & "<p align=""left"" style=""text-align:left;""><font size=2 color=#FF69B4>Morningstar.Illuminating investing worldwide.</font><br />"
conhtml = conhtml & "<a href=""mailto:" & LCase(Replace(Application.UserName, " ", ".")) & "@XXXXXX.com""><u>" & LCase(Replace(Application.UserName, " ", ".")) & "@XXXXXX.com</u></a></p>"
conhtml = conhtml & "<p class=""pp"" align=""left"" style=""text-align:left;margin:0px"">30F, Tower A, Donghai International Center 7888 Shennan Road, Futian district,Shenzhen, Guangdong Province, China 518040<br />"
conhtml = conhtml & "<a href=""https://urldefense.proofpoint.com/v2/url?u=http-3A__scanmail.trustwave.com_-3Fc-3D4394-26d-3DjcvQ2CggEsqkdWCEgMZJITyd-5FHlzGhNy8Qj-5F-5FWNFCA-26u-3Dhttp-253a-252f-252fcn-252emorningstar-252ecom-252f&amp;d=DwMFAg&amp;"
conhtml = conhtml & "c=qrd1rYdJNb4QhfvJv5PebOPglYwfSMJ71NR_1HMKptQ&amp;r=KR0eD0B-s1Y8uBImB7e6xdoONGxvbC6Yp3D6pV7YgBk&amp;m=Q5CQH8XdkDZRQoP3oACw3HAsB1jk2_pkuhA-6dXRE6c&amp;s=Hay_CFeBZJYJDybQbz3xbsOrcOqJbYn2yE0xCxeWyJA&amp;e="" target=""_blank"">https://www.baidu.com</a><br />"
conhtml = conhtml & "<font size=1 color=""green"">Please consider the environment before printing.</font></p>"
conhtml = conhtml & "<p class=""pp"" style=""color:#9D9D9D;font-size:11px;margin:0px"">"
conhtml = conhtml & "This e-mail contains privileged and confidential information and is intended only"
conhtml = conhtml & " for the use of the person(s) named above. Any dissemination, distribution, or"
conhtml = conhtml & " duplication of this communication without prior written consent from"
conhtml = conhtml & " XXXXXX is strictly prohibited. If you have received this message in error,"
conhtml = conhtml & " please contact the sender immediately and delete the materials from any computer."
conhtml = conhtml & "</p></Font>"
With objMail
.To = "XXXXXXXXXX.com"
.Subject = "Test Email"
.HTMLBody = body & tablestr & linkstr & conhtml
.Display
End With

如果插入的表格是工作表里面的数据,可以单独写一个函数循环读写单元格,调用时.HTMLBody = body & getTable & linkstr & conhtml

Function getTable() As String
i =
j =
RowCount = ThisWorkbook.Sheets().Range("a999999").End(xlUp).Row
getTable = "<table border=" & "'1'" & " cellspacing=" & "'0'" & " style=" & "'border-collapse:collapse'" & ">"
getTable = getTable & "<tr>"
Do Until j = RowCount +
Do Until ThisWorkbook.Sheets().Cells(j, i) = ""
getTable = getTable & "<td " & " align=" & "'center'" & " height=30" & " width=100" & " style=" & "'font-size: 10pt; font-family: Verdana;" & " valign=" & "'center'" & ">"
getTable = getTable & ThisWorkbook.Sheets().Cells(j, i) & "</td>"
i = i +
Loop
getTable = getTable & "</tr>"
i =
j = j +
Loop
getTable = getTable & "</tr></table><br />"
End Function

这是工作表中的表格:

这是邮件中的表格:

以这种方法写入表格只能写入单元格中的内容,如果想要把单元格的格式也照搬进邮件,可以在表格的html代码中手动写好格式代码。

如果签名部分的html代码不好写,或者实现效果不佳,也可以采用你的OUTLOOK设置的默认签名,方法如下:

objMail.Display
signature = objMail.HTMLBody
With objMail
.To = "XXXXXXXXXX.com"
.Subject = "Test Email"
.HTMLBody = body & tablestr & linkstr & signature
End With

VBA学习资料分享-2的更多相关文章

  1. VBA学习资料分享-1

    近年来,人工智能的概念深入人心,许多企业也正逐步或已推行办公自动化,寻求人力时间成本的降低,从而提升效益.对企业来说,要完全使用人工智能将工作流程自动化恐怕是没那么容易的,可以的话成本也不低,所以使用 ...

  2. VBA学习资料分享-6

    从网上抓取数据到EXCEL中是VBA的一个常用之处,今天分享下VBA网抓的一些套路,主要有以下几种: 第一种:msxml2.xmlhttp/Microsoft.XMLHTTP/WinHttp.WinH ...

  3. VBA学习资料分享-4

    工作中经常要从数据库把数据跑出来放到EXCEL上,才能进行下一步的操作,那么VBA如何结合SQL提取数据呢?答案就是ADO. 声明和实例变量 引用法——引用Microsoft ActiveX Data ...

  4. VBA学习资料分享-3

    VBA创建/发送OUTLOOK邮件时怎么加上默认签名呢?用过OUTLOOK写邮件的人都知道,如果你设置了默认签名,那么在创建空白邮件的时候就会自动加上你设置的签名.根据这一特性,我们可以在用VBA创建 ...

  5. VBA学习资料分享-5

    工作中经常要从数据库把数据跑出来放到EXCEL上,才能进行下一步的操作,那么除了ADO,还有什么方法可以导入数据库数据呢? 推荐使用QueryTable对象 Dim qt As querytable ...

  6. [转]Android 学习资料分享(2015 版)

    转 Android 学习资料分享(2015 版) 原文地址:http://www.jianshu.com/p/874ff12a4c01 目录[-] 我是如何自学Android,资料分享(2015 版) ...

  7. 学习资料分享:Python能做什么?

    最近一直忙着研究学习Python,很久没更新博客了,整理了一些Python学习资料,和大家分享一下!每天更新一篇~ 一.Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,和一 ...

  8. 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)

    原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...

  9. 近200篇机器学习&深度学习资料分享【转载】

    编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Le ...

随机推荐

  1. maven在整合springmvc+hibernate运行时遇到的一些问题

    在这里大概记录一下自己在搭建的时候遇到的一些小问题. 1,在获取hibernate的sessionFactory对象时报空指针异常,我的常规配置如下:

  2. Flume-自定义 Interceptor(拦截器)

    使用 Flume 采集服务器本地日志,需要按照日志类型的不同,将不同种类的日志发往不同的分析系统. 在实际的开发中,一台服务器产生的日志类型可能有很多种,不同类型的日志可能需要发送到不同的分析系统. ...

  3. python笔记3 闭包 装饰器 迭代器 生成器 内置函数 初识递归 列表推导式 字典推导式

    闭包 1, 闭包是嵌套在函数中的 2, 闭包是内层函数对外层函数的变量(非全局变量)的引用(改变) 3,闭包需要将其作为一个对象返回,而且必须逐层返回,直至最外层函数的返回值 闭包例子: def a1 ...

  4. 免费下载 SetupVPN CRX 3.7.0 for Chrome OR QQ浏览器

    免费下载 SetupVPN CRX 3.7.0 for Chrome OR QQ浏览器 Lifetime Free VPN(微劈嗯) 下载setupvpn 3.7.0的crx文件, 打开chrome的 ...

  5. 启动elasticsearch的时候报出Exception in thread "main" SettingsException[Failed to load settings from /usr/local/elasticsearch/config/elasticsearch.yml]; nested: MarkedYAMLException[while scanning a simple ke

    故障现象: [elasticsearch@tiantianml- ~]$ /usr/local/elasticsearch/bin/elasticsearch Exception in thread ...

  6. 利用mysql数据库中的TMD表修复“is marked as crashed and last (automatic?) repair failed”的错误 Database query error

    ===========================测试成功============================================= 1.页面出现错误:Database query ...

  7. 安装Oracle11g出现INS-13001环境不满足最低要求

    原版:https://blog.csdn.net/Q_Sea__/article/details/79012808 第一次安装Oracle11g,就出现这个问题,就找了一些解决方案.现在总结一下. 出 ...

  8. [maven]maven插件 tomcat7-maven-plugin 的使用

    使用 tomcat7-maven-plugin,可以将tomcat内嵌到web项目中,直接运行webapp项目. 第一步.pom.xml的配置: <build> <plugins&g ...

  9. 《精通并发与Netty》学习笔记(10 - 详解NIO (一) Channel、Buffer )

    一.Java NIO 概述 Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Bu ...

  10. vue项目中兼容ie8以上浏览器的配置

    1.首先需要在根目录的index.html文件加入如下代码 <meta http-equiv="X-UA-Compatible" content="IE=edge& ...