vba群發電子郵件

  

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


vba群發電子郵件


Private Sub CommandButton1_Click()


'要能正確發送并需要對Microseft Outlook進行有效配置


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

'取得當前工作表與Cells(1,1)相連的數據區行數

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

'創建objOutlook為Outlook應用程序對象

Set objOutlook = New Outlook.Application

'開始循環發送電子郵件,比如從第二行開始,第一行是標題

For rowCount = 2 To endRowNo

Set objMail = objOutlook.CreateItem(olMailItem) '創建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 '設置收件人地址(從Excel表的第一列"郵件地址"字段中獲得)

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

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

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

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

.Send

End With

Set objMail = Nothing '銷毀objMail對象

Next

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

Set objOutlook = Nothing '銷毀objOutlook對象

End Sub

'提取郵件簽名子函數

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群發電子郵件具體步驟如下:

第一步:在excel表中鍵入以下表格格式,填寫好對應的內容,郵件附件內容填的是需要發送的附件地址。


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


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


第三步:配置outlook郵件發送環境,工具——引用——勾選outlook 15.0——確定。


第四步:點擊命令按鈕無反應,則回到VB編輯界面,點擊圖中三角形按鈕,后顯示郵件發送成功,完成。

相關資訊