VBA学习资料分享-2
想利用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&d=DwMFAg&"
conhtml = conhtml & "c=qrd1rYdJNb4QhfvJv5PebOPglYwfSMJ71NR_1HMKptQ&r=KR0eD0B-s1Y8uBImB7e6xdoONGxvbC6Yp3D6pV7YgBk&m=Q5CQH8XdkDZRQoP3oACw3HAsB1jk2_pkuhA-6dXRE6c&s=Hay_CFeBZJYJDybQbz3xbsOrcOqJbYn2yE0xCxeWyJA&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的更多相关文章
- VBA学习资料分享-1
近年来,人工智能的概念深入人心,许多企业也正逐步或已推行办公自动化,寻求人力时间成本的降低,从而提升效益.对企业来说,要完全使用人工智能将工作流程自动化恐怕是没那么容易的,可以的话成本也不低,所以使用 ...
- VBA学习资料分享-6
从网上抓取数据到EXCEL中是VBA的一个常用之处,今天分享下VBA网抓的一些套路,主要有以下几种: 第一种:msxml2.xmlhttp/Microsoft.XMLHTTP/WinHttp.WinH ...
- VBA学习资料分享-4
工作中经常要从数据库把数据跑出来放到EXCEL上,才能进行下一步的操作,那么VBA如何结合SQL提取数据呢?答案就是ADO. 声明和实例变量 引用法——引用Microsoft ActiveX Data ...
- VBA学习资料分享-3
VBA创建/发送OUTLOOK邮件时怎么加上默认签名呢?用过OUTLOOK写邮件的人都知道,如果你设置了默认签名,那么在创建空白邮件的时候就会自动加上你设置的签名.根据这一特性,我们可以在用VBA创建 ...
- VBA学习资料分享-5
工作中经常要从数据库把数据跑出来放到EXCEL上,才能进行下一步的操作,那么除了ADO,还有什么方法可以导入数据库数据呢? 推荐使用QueryTable对象 Dim qt As querytable ...
- [转]Android 学习资料分享(2015 版)
转 Android 学习资料分享(2015 版) 原文地址:http://www.jianshu.com/p/874ff12a4c01 目录[-] 我是如何自学Android,资料分享(2015 版) ...
- 学习资料分享:Python能做什么?
最近一直忙着研究学习Python,很久没更新博客了,整理了一些Python学习资料,和大家分享一下!每天更新一篇~ 一.Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,和一 ...
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)(1)
原文:http://developer.51cto.com/art/201501/464174.htm 编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定 ...
- 近200篇机器学习&深度学习资料分享【转载】
编者按:本文收集了百来篇关于机器学习和深度学习的资料,含各种文档,视频,源码等.而且原文也会不定期的更新,望看到文章的朋友能够学到更多. <Brief History of Machine Le ...
随机推荐
- Flutter移动电商实战 --(26)列表页_使用Provide控制子类-2
主要实现功能,点击一级分类,二级分类跟着变.这里主要用我们的provide 新建provide provide文件夹下创建:child_category.dart 事件上就是这个实体:BxMallSu ...
- 亿美软通 短信api
亿美软通 短信api 国际短信http标准协议文档和demo的地址: http://www.b2m.cn/static/doc/ims/ims_sendSingle.html import d ...
- vim 快捷键 清空文件所有内容
vim清空文件所有内容 在使用vim编辑器的时候,有时候编辑一个文件,而文件内容比较多,如果需要快速清空整个文件,可以使用一下命令: 在命令模式下,首先执行 gg 这里是跳至文件首行 再执行: dG ...
- SQL-W3Chool-高级:SQL CREATE DATABASE 语句
ylbtech-SQL-W3Chool-高级:SQL CREATE DATABASE 语句 1.返回顶部 1. CREATE DATABASE 语句 CREATE DATABASE 用于创建数据库. ...
- Scrapy - 小说爬虫
实例解析 - 小说爬虫 页面分析 共有三级页面 一级页面 大目录 二级页面 章节目录 三级界面 章节内容 爬取准备 一级界面 http://www.daomubiji.com/ 二级页面xpath 直 ...
- [C++]数据结构:线性表之(单)链表
一 (单)链表 ADT + Status InitList(LinkList &L) 初始化(单)链表 + void printList(LinkList L) 遍历(单)链表 + int L ...
- 【ARTS】01_28_左耳听风-201900520~201900526
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- springmvc项目 logback.xml配置 logstash日志收集
配置logback,需要一个转接的Appender,可以通过Maven依赖加到项目中: <dependency> <groupId>com.cwbase</groupId ...
- Python数据结构与语法
字典:Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组.字典等其他容器模型:值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组:遍历字典时遍历的是键:访问v ...
- AssassinGo: 基于Go的高并发可拓展式Web渗透框架
转载自FreeBuf.COM AssassinGo是一款使用Golang开发,集成了信息收集.基础攻击探测.Google-Hacking域名搜索和PoC批量检测等功能的Web渗透框架,并且有着基于Vu ...