實際工作中經(jīng)常會遇到批量發(fā)郵件的需求,比如發(fā)送工資條、節(jié)日祝福、定期匯報工作成果、日報、周報、月報等,當然如果發(fā)送的郵件不是很多的話完全可以手工發(fā)送,一旦遇到批量發(fā)送的場景,手工一份一份的發(fā)送就會變得機械而重復勞動了。今天分享一個Excel調(diào)用電腦OutLook批量發(fā)送郵件的技巧,小伙伴們可以,先收藏,等要用到的時候可以有備無患,從容應對,別人加班的時候你還可以準點下班,那豈不是很樂哉!
一、先看看我們需要實現(xiàn)的效果。
發(fā)郵件跟寫公式一樣簡單^-^
二、怎樣才可以實現(xiàn)?
原理:通過VBA定義一個發(fā)郵件的函數(shù),達到批量發(fā)送郵件時跟普通公式的用法一樣簡單的效果。
上面的效果圖中我們定義了一個sendmail的函數(shù),如果你現(xiàn)在打開你的excel找這個函數(shù)是找不到的,因為這個并不是office的內(nèi)置函數(shù),但微軟給office產(chǎn)品都安裝了一個神技能 “宏”,表親們應該都聽過這個,這次咱先不去追究這到底是什么東西,先看如何實現(xiàn)。
具體步驟:
- 新建一個空白的Excel文件。
- 打開Excel文件,按快捷鍵ALT+F11進入VBE界面。
- 點擊左邊的工程窗口,點擊鼠標右鍵,新建一個模塊。
- 把代碼貼入到模塊中。
- 回到Excel界面,開始驗證發(fā)郵件函數(shù)。
- 上面文字沒看懂的請看下面的演示。
三、發(fā)郵件的VBA代碼。
感興趣的童鞋們可以復制以下代碼按上面的操作試一試。
'發(fā)送郵件函數(shù) sendto收件人多個用英文分號鏈接 subj郵件主題 mbody郵件正文 filepath附件路徑
Public Function sendmail(sendto As String, subj As String, mbody As String, filepath As String)
On Error Resume Next
Dim oLApp As Object
Dim oItem As Object
Set oLapp = CreateObject("Outlook.application")
Set oItem = oLapp.createitem(0)
With oItem
.Subject = subj
.To = sendto
.htmlbody = mbody
'加上這一句就可以添加附件
.Attachments.Add filepath
.Send
'判斷是否發(fā)送成功
If Err.Number = 0 Then
sendmail = "發(fā)送成功"
Else
'如果發(fā)送失敗則返回失敗原因
sendmail = "發(fā)送失敗:" & Err.Description
End If
End With
Set oLapp = Nothing
Set oItem = Nothing
End Function
四、保存我們定義的郵件函數(shù)。
- 如果你的Excel是2007及以上版本的,保存的時候會出現(xiàn)如下提示。
- 保存時請選擇啟用宏的工作簿即可。
補充說明:
2007版本及以上的Excel為了保證安全性,強制了含VBA代碼的專用文件格,常用存為xlsm格式。
2003版本的Excel,后綴是xls的Excel文件可以直接存儲VBA代碼,不需要另存為其他格式。
如有疑問歡迎小伙伴們點關(guān)注,共同探討學習。






