用ExcelVBA编程快速发送邮件,outlook密送功能在哪里

如果你每天都要做报表,发给固定的收件人,你想不想只点一个按钮、立即将报表作为附件发送出去?只要你学过Excel的VBA编程,这是一件很简单的事情。

首先在报表中创建一个“邮件地址”表(当然其他名称也可以,在程序中引用这个名称即可)。收件人地址从B2开始往下加,抄送人地址从D2开始往下,密送收件人地址从F2开始往下加,G2填写主题,H2填写正文。A列、C列、E列可以填上对应的收件人姓名,但不是必须的。

密送收件人放在这里只是说明程序的使用方法,失去了密送的意义。这个收件人表也可以不需要,改为在代码中维护收件人,这是更接近实际的做法。一般初学者可以在收件人表中维护收件人信息。

用ExcelVBA编程快速发送邮件,outlook密送功能在哪里

B2收件人,D2抄送,F2密送,G2邮件主题,H2邮件正文

发送电子邮件代码如下:

Public Sub 发送电子邮件()

Dim OutlookApp As Outlook.Application

Dim newMail As Outlook.mailitem

Dim myAttachments As Outlook.Attachments

Dim n As Integer, i As Integer

Dim ws As Worksheet

On Error Resume Next

Set ws = Worksheets("邮件地址")

n = ws.Range("B65536").End(xlUp).Row

address = Worksheets("邮件地址").Cells(2, 2)

For i = 2 To n

If i < n Then

address = address & ";" & Worksheets("邮件地址").Cells(i + 1, 2)

End If

Next i

'CC

n = ws.Range("D65536").End(xlUp).Row

addressCC = Worksheets("邮件地址").Cells(2, 4)

For i = 2 To n

If i < n Then

addressCC = addressCC & ";" & Worksheets("邮件地址").Cells(i + 1, 4)

End If

Next i

'BCC

n = ws.Range("F65536").End(xlUp).Row

addressBCC = Worksheets("邮件地址").Cells(2, 6)

For i = 2 To n

If i < n Then

addressBCC = addressBCC & ";" & Worksheets("邮件地址").Cells(i + 1, 6)

End If

Next i

Set OutlookApp = New Outlook.Application

wbStr = ThisWorkbook.FullName '指定要发送发工作簿名称字符串

Set newMail = OutlookApp.CreateItem(olMailItem) '创建新邮件

With newMail

.Subject = Worksheets("邮件地址").Cells(2, 7) '设置邮件主题

.Body = Worksheets("邮件地址").Cells(2, 8) '设置邮件正文

'发送附件

Set myAttachments = newMail.Attachments

myAttachments.Add wbStr, olByValue, 1, "工作簿"

.To = address '收件人

.CC = addressCC '抄送

.BCC = addressBCC '密送

.Send '开始发送

End With

End Sub

请注意,要在Outlook中设置允许编程访问,具体如何设置请看我的另一篇文章“如何用Excel实现办公自动化”。否则会弹出如下对话框要你选择:

用ExcelVBA编程快速发送邮件,outlook密送功能在哪里

Outlook弹出的对话框

最后,添加一个加载项菜单中的按钮,链接到你编写的程序模块。点击一下按钮,即可运行程序,把你这个报表作为附件发给相关收件人。以后要发出邮件,只要点击这个按钮就可以了。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.yoka8.cn/5488.html