實際工作中經常會遇到批量發郵件的需求,比如發送工資條、節日祝福、定期匯報工作成果、日報、周報、月報等,當然如果發送的郵件不是很多的話完全可以手工發送,一旦遇到批量發送的場景,手工一份一份的發送就會變得機械而重復勞動了。今天分享一個Excel調用電腦OutLook批量發送郵件的技巧,小伙伴們可以,先收藏,等要用到的時候可以有備無患,從容應對,別人加班的時候你還可以準點下班,那豈不是很樂哉!
一、先看看我們需要實現的效果。

發郵件跟寫公式一樣簡單^-^
二、怎樣才可以實現?
原理:通過VBA定義一個發郵件的函數,達到批量發送郵件時跟普通公式的用法一樣簡單的效果。
上面的效果圖中我們定義了一個sendmail的函數,如果你現在打開你的excel找這個函數是找不到的,因為這個并不是office的內置函數,但微軟給office產品都安裝了一個神技能 “宏”,表親們應該都聽過這個,這次咱先不去追究這到底是什么東西,先看如何實現。
具體步驟:
- 新建一個空白的Excel文件。
- 打開Excel文件,按快捷鍵ALT+F11進入VBE界面。
- 點擊左邊的工程窗口,點擊鼠標右鍵,新建一個模塊。
- 把代碼貼入到模塊中。
- 回到Excel界面,開始驗證發郵件函數。
- 上面文字沒看懂的請看下面的演示。


三、發郵件的VBA代碼。
感興趣的童鞋們可以復制以下代碼按上面的操作試一試。
'發送郵件函數 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 '判斷是否發送成功 If Err.Number = 0 Then sendmail = "發送成功" Else '如果發送失敗則返回失敗原因 sendmail = "發送失敗:" & Err.Description End If End With Set oLapp = Nothing Set oItem = Nothing End Function
四、保存我們定義的郵件函數。
- 如果你的Excel是2007及以上版本的,保存的時候會出現如下提示。
- 保存時請選擇啟用宏的工作簿即可。


補充說明:
2007版本及以上的Excel為了保證安全性,強制了含VBA代碼的專用文件格,常用存為xlsm格式。
2003版本的Excel,后綴是xls的Excel文件可以直接存儲VBA代碼,不需要另存為其他格式。
如有疑問歡迎小伙伴們點關注,共同探討學習。
