使用 VBA 發送電子郵件:11 個簡單步驟即可學習

在當前的商業環境中,Visual Basic for Applications(VBA)是一種難以匹敵的工具,能夠讓用戶自動化 Microsoft Excel 中的日常任務。透過此程式語言,您可以整合 Microsoft Office 的其他應用程式,例如 OutlookPowerPointWord,以提高工作效率。

本教程將為您提供使用 VBA 從 Excel 發送電子郵件的分步指導,幫助您輕鬆管理電子郵件任務。

使用 VBA 發送電子郵件的流程

1. 啟用 Microsoft Outlook 對象庫

要使用 Excel VBA 發送電子郵件,首先需要設置 Outlook 的對象引用。請按照以下步驟操作:

  • 通過單擊“文件” > “另存為”,選擇位置並將現有 Excel 文件另存為啟用宏的文件。
  • Alt+F11 打開 VBA 代碼編輯器,在菜單中選擇 “工具”
VBA 代碼編輯器
  • 選擇 引用,然後在可用引用列表中找到 Microsoft Outlook 16.0 Object Library
  • 選擇該對象並單擊 “確定” 退出可用引用列表。

2. 編寫並執行 VBA 代碼

現在您已啟用 Outlook 對象,請遵循以下步驟編寫 VBA 宏並執行:

  • 在 VBA 代碼編輯器界面中,查找 “插入”選項卡
  • 單擊 “插入”,然後選擇 “模塊” 以插入可編寫 VBA 代碼的空間。
  • 將以下 VBA 腳本複製並粘貼到新創建的模塊中:
Sub send_email_with_VBA()
    Dim EmailApp As Outlook.Application
    Dim Source As String
    Set EmailApp = New Outlook.Application
    Dim EmailItem As Outlook.MailItem
    Set EmailItem = EmailApp.CreateItem(olMailItem)
    
    EmailItem.To = "[email protected]"
    EmailItem.CC = "[email protected]"
    EmailItem.BCC = "[email protected]"
    EmailItem.Subject = "客戶訂單發貨狀態"
    EmailItem.HTMLBody = "嗨,團隊" & vbNewLine & vbNewLine & "PFA 今天訂單的電子表格status" & vbNewLine & vbNewLine & "問候" & vbNewLine & "Tamal Das"
    
    Source = ThisWorkbook.FullName
    EmailItem.Attachments.Add Source
    EmailItem.Send
End Sub

上述代碼將使用您的 Outlook 帳戶向提到的電子郵件地址發送郵件。電子郵件內容可以在 EmailItem.HTMLBody 中進行更改,Excel VBA 會自動將您的工作簿附加為電子郵件附件。

定制您的電子郵件

要個性化地址和電子郵件正文,您可以做以下修改:

  1. 將代碼中的所有電子郵件地址替換為您的 Outlook 聯繫人
  2. 根據需要自定義 EmailItem.Subject 的文本。
  3. EmailItem.HTMLBody 中,更改引號內的內容。
  4. F5 鍵運行 VBA 腳本。
執行 VBA 腳本

要成功使用 VBA 發送電子郵件,您需要在 Microsoft Office 套件中的獨立 Outlook 應用程序中 配置 Gmail 帳戶 或 Outlook 帳戶。基於瀏覽器的 Outlook 無法使用此 VBA 代碼。

3. 結論

通過上述步驟,您應該能夠在 Excel 中輕鬆實現電子郵件的自動發送。比如說,您可以在協作者更新工作表時自動接收電子郵件,或在 Excel 中更新訂單狀態列時通知客戶。

如果您希望利用 VBA 實現更多 Excel 自動化功能,請探索 VBA 時間戳 的應用,以記錄電子表格的更改日誌。

38 Comments

  1. 阿慶 -

    我之前有使用過 VBA,但對於發送郵件這部分還不是很懂,這篇文章真是太幫助我了!

  2. 志明 -

    這篇文章真是給了我靈感,我也想寫一個程式來自動發送郵件,覺得很有挑戰性!

  3. 小琪 -

    我想知道發送郵件的速度快不快?有沒有什麼影響因素呢

  4. 海棠 -

    感謝這篇文章,真的讓我對 VBA 有了全新的理解,對於發送郵件的步驟講解得非常清楚!

  5. 小風 -

    我之前用 VBA 發發資訊給客戶,但一直不順手,希望這次能學得更好

  6. 阿偉 -

    有沒有推薦的資源可以深入學習 VBA 呢?我想要更專業一點的知識

  7. 子君 -

    從這篇文章學到很多,尤其是錯誤處理的部分,這對我來說非常重要

  8. 小白 -

    這篇文章寫得真不錯!剛好我最近也想學習使用 VBA 發送電子郵件,感謝提供的11個步驟,非常詳細

  9. 金妮 -

    使用 VBA 發送郵件的過程一定要小心使用 SMTP 的設置,不然會出現錯誤

  10. 天下無敵 -

    哈哈,這樣的學習方式真的讓我感到興奮!希望快點能動手做

  11. 小偉 -

    我有一個問題,發送郵件的過程中如果出現錯誤,應該如何處理呢

  12. 小花 -

    使用 VBA 自動發送電子郵件的功能真的很實用,我已經試著將這個方法應用到我的工作中了

  13. 王小華 -

    這篇中包含的11個步驟是否能適用於不同版本的 Excel?我現在用的是 Excel 2016

  14. 莉莉 -

    這篇文章讓我想起我曾經嘗試用 VBA 做一個自動化報告,卻沒有成功!現在我想再試一次

  15. 阿龍 -

    這篇文章很實用,我學會了如何使用 VBA 發送郵件,真的省去了很多麻煩

  16. 雅婷 -

    謝謝你的分享!我一直在尋找這方面的資料,這下終於找到適合的學習資源了

  17. 小莉 -

    我在實作的時候遇到了一些問題,誰能幫我一下嗎?謝謝大伙

  18. 小妍 -

    對於初學者來說,這篇文章是否有配合的影片教學呢?我會比較容易理解。

  19. 小艾 -

    感謝分享!我會把這些步驟記下來,準備開始實踐了,每天都想學習新技能!

  20. 小霞 -

    看到這篇文章,我心裡超開心的,簡直是意外驚喜

  21. 慶慶 -

    我最近越來越喜歡 VBA 發送郵件,省掉了很多手動的麻煩,真棒

  22. 子嫻 -

    學習了這個知識點,未來在工作中一定會派上用場,謝謝作者的努力!

  23. 林樺 -

    很好奇作者是如何發現這些方法的?是否有什麼特別的學習經歷?

  24. 米莉 -

    學會這個真的是一大收穫!未來我也可以自動化發送報告,省時省力

  25. 小貓咪 -

    哈哈,學了這個功能讓我工作時忍不住想發一些好玩的郵件給同事!

  26. 小明 -

    我想請教,這11個步驟裡面,有哪個步驟是最容易出錯的呢?謝謝

  27. 小麥 -

    感謝分享,生活中學會用 VBA 發送郵件,真的讓我多了很多時間去做別的事

  28. 小真 -

    這篇文章的步驟真的是簡單易懂,對我這個平常不碰程式的人來說,真的超級友好!

  29. 文潔 -

    學會了這個技巧,感覺生活都變得更簡單了!謝謝這篇文章

  30. 小俊 -

    我覺得這篇文章指導得很好,我會分享給我的朋友們,讓他們也學習使用 VBA!

  31. 小草 -

    我第一次嘗試用 VBA 寫郵件程式,感覺好有成就感!希望能有更多範例可以學習

  32. 文婷 -

    學會用 VBA 發送電子郵件太棒了!我常常需要發送報告,這簡化了我的工作流程

  33. 小羽 -

    分享一下我的經驗,我最近用 VBA 發送郵件成功了,也幫同事完成了相同的功能,大家都很滿意

  34. 小如 -

    想問一下,使用 VBA 發送郵件的最佳實踐有哪些,大家有沒有建議?

  35. 張敏 -

    真的很開心我找到這篇文章,這是我學習 VBA 的起點!感謝你的分享

  36. 阿翰 -

    有沒有人曾經使用這個功能遭遇過什麼問題?我想了解一下大家的經驗

  37. 阿強 -

    如果在公司內部發送郵件,是否需要考慮網路安全性呢?這方面應該如何注意

  38. 阿德 -

    希望能看到更多關於 VBA 的應用教學,這篇開了我的眼界,感謝

Leave a Comment

限制編輯以保護 Word 2010 文件

限制編輯以保護 Word 2010 文件

保護您的重要文件免受任何外部來源的侵害將非常有益。有時在撰寫文件時,迫切需要

Access 2010:建立資料庫表之間的關係

Access 2010:建立資料庫表之間的關係

關係型資料庫管理系統(如 Access 2010)的優點之一是可以輕鬆設定具有約束的表和關係,以使

MS Access 2010:使用 IFF 函數查詢

MS Access 2010:使用 IFF 函數查詢

在 MS Access 中,如果指定條件的計算結果為 TRUE,則 IIF 函數傳回一個值;如果計算結果為 FALSE,則傳回另一個值。 IIF 函數

Office Excel 2010 圖表與圖形

Office Excel 2010 圖表與圖形

圖表和圖形是呈現數據的絕佳方式。 Microsoft Excel 2010 提供幾乎所有類型的圖表,並簡化了繪製流程,以便

Microsoft Word 2010 間距

Microsoft Word 2010 間距

間距在建立文件時非常重要,因為它會影響文件的外觀和呈現效果。您可以輕鬆增加或減少

匯出/匯入功能區和快速存取工具列設定 [Office 2010]

匯出/匯入功能區和快速存取工具列設定 [Office 2010]

Microsoft Office 套件應用程式提供了最簡單的方法來自訂功能區、標籤和快速存取工具欄,但如果您需要安裝新的

Access 2010:將資料庫表格匯出到 Excel 2010

Access 2010:將資料庫表格匯出到 Excel 2010

在 Access 中執行不同的操作並不容易,因為 RDBMS(關聯式資料庫管理系統)需要特定的語法和約束

從 Word 文件中刪除隱藏的元資料和元素

從 Word 文件中刪除隱藏的元資料和元素

幾乎每個文件都包含以下資訊:隱藏文字、物件資訊、個人資訊(識別資訊:作者姓名)等

Excel 2010 中的比較直方圖

Excel 2010 中的比較直方圖

圖表是 Excel 中最突出的功能之一,但有時你需要以不同的方式使用它們。我們將嘗試製作一個比較直方圖

使用 Excel 2010 中的資料合併功能合併電子表格

使用 Excel 2010 中的資料合併功能合併電子表格

我們通常將資料保存在多個工作表中,以便檢查每個實例的資料並單獨查看它們,但最好合併所有