vba群發(fā)電子郵件

  

vba是excel中非常強(qiáng)大的功能之一,甚至可以用于電子郵件群發(fā),但很多人還不知道,今天一米軟件就來給大家分享一下使用EXCEL VBA代碼自動群發(fā)帶附件的郵件同時抄送給不同的人的經(jīng)驗。


vba群發(fā)電子郵件


Private Sub CommandButton1_Click()


'要能正確發(fā)送并需要對Microseft Outlook進(jìn)行有效配置


On Error Resume Next

Dim rowCount, endRowNo

Dim objOutlook As New Outlook.Application

Dim objMail As MailItem

Dim SigString As String

Dim Signature As String

'取得當(dāng)前工作表與Cells(1,1)相連的數(shù)據(jù)區(qū)行數(shù)

endRowNo = Application.WorksheetFunction.CountIfs(Range(“A:A”), “<>”)

'創(chuàng)建objOutlook為Outlook應(yīng)用程序?qū)ο?

Set objOutlook = New Outlook.Application

'開始循環(huán)發(fā)送電子郵件,比如從第二行開始,第一行是標(biāo)題

For rowCount = 2 To endRowNo

Set objMail = objOutlook.CreateItem(olMailItem) '創(chuàng)建objMail為一個郵件對象

'提取郵件簽名

SigString = Worksheets(“Sheet1”).Cells(2, 5)

If Dir(SigString) <> “” Then

Signature = GetBoiler(SigString)

Else

Signature = “”

End If

With objMail

.To = Cells(rowCount, 1).Value '設(shè)置收件人地址(從Excel表的第一列"郵件地址"字段中獲得)

.CC = Cells(rowCount, 2).Value '設(shè)置抄送人地址(從Excel表的第二列"郵件地址"字段中獲得)

.Subject = Cells(rowCount, 3).Value '設(shè)置郵件主題(從Excel表的第三列"郵件主題"字段中獲得)

.HTMLBody = Cells(rowCount, 4).Value '設(shè)置郵件內(nèi)容(從Excel表的第四列"郵件內(nèi)容"字段中獲得)

.Attachments.Add Cells(rowCount, 5).Value '設(shè)置附件(從Excel表的第五列"附件"字段中獲得)

.Send

End With

Set objMail = Nothing '銷毀objMail對象

Next

MsgBox (“郵件全部發(fā)送完成!”)

Set objOutlook = Nothing '銷毀objOutlook對象

End Sub

'提取郵件簽名子函數(shù)

Function GetBoiler(ByVal sFile As String) As String

Dim fso As Object

Dim ts As Object

Set fso = CreateObject(“Scripting.FileSystemObject”)

Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)

GetBoiler = ts.readall

ts.Close

End Function


vba群發(fā)電子郵件具體步驟如下:

第一步:在excel表中鍵入以下表格格式,填寫好對應(yīng)的內(nèi)容,郵件附件內(nèi)容填的是需要發(fā)送的附件地址。


表格第一行分別為:郵件地址、抄送人、郵件主題、郵件內(nèi)容、郵件附件、郵件簽名


第二步:插入命令按鈕控件,進(jìn)入設(shè)計模式,鍵入以上所有代碼,保存。


第三步:配置outlook郵件發(fā)送環(huán)境,工具——引用——勾選outlook 15.0——確定。


第四步:點(diǎn)擊命令按鈕無反應(yīng),則回到VB編輯界面,點(diǎn)擊圖中三角形按鈕,后顯示郵件發(fā)送成功,完成。

相關(guān)資訊

推薦軟件