【VBA 自動化教學04】一鍵寄送 Excel 或 PDF 檔案|自動化郵件傳送報表

更新 發佈閱讀 6 分鐘

在日常工作中,將報表或表單寄送給主管、客戶或團隊成員是常見流程。若每次都需手動開啟 Outlook、附加檔案、輸入收件人與主旨,不僅耗時,也容易出錯。透過 VBA,我們可以建立一個「一鍵寄送」功能,自動將指定的 Excel 或 PDF 檔案透過 Outlook 寄出,大幅提升效率與準確性。

功能概述

這段 VBA 程式碼可實現以下功能:

  • 自動建立 Outlook 郵件物件
  • 附加指定路徑的 Excel 或 PDF 檔案
  • 自動填入收件人、主旨與內文
  • 開啟郵件草稿供使用者確認後寄出(或直接寄出)

VBA 程式碼範例

Sub SendFileByEmail()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim FilePath As String
Dim Recipient As String
Dim SubjectLine As String
Dim BodyText As String

' 設定要寄送的檔案路徑(可為 Excel 或 PDF
FilePath = ThisWorkbook.Path & "\報表.pdf" ' ← 可改為 .xlsx

' 設定收件人、主旨與內文
Recipient = "recipient@example.com"
SubjectLine = "本週報表已完成,請查收"
BodyText = "您好,附件為本週報表,請查閱。如有問題請回覆。"

' 建立 Outlook 郵件物件
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)

With OutlookMail
.To = Recipient
.Subject = SubjectLine
.Body = BodyText
.Attachments.Add FilePath
.Display ' ← 若改為 .Send 則直接寄出
End With

MsgBox "郵件已建立,請確認後寄出", vbInformation
End Sub

程式碼詳細解說(初學者導向)

這段程式碼的目的是將指定檔案(Excel 或 PDF)透過 Outlook 建立郵件並附加寄送。以下是逐段說明:

首先,我們宣告了幾個變數(需自行設定,或是擴充功能來優化,目前以基礎版來教學):

  • OutlookApp 是 Outlook 應用程式物件。
  • OutlookMail 是郵件物件。
  • FilePath 是要附加的檔案完整路徑。
  • Recipient 是收件人 Email。
  • SubjectLine 是郵件主旨。
  • BodyText 是郵件內文。

接著設定 FilePath,這裡以目前工作簿所在資料夾的「報表.pdf」為例。你也可以改為 .xlsx 或其他檔案。

然後設定收件人、主旨與內文。這些內容可依實際需求修改,也可改為由使用者輸入。

使用 CreateObject("Outlook.Application") 建立 Outlook 應用程式物件,並使用 CreateItem(0) 建立一封新郵件。

With OutlookMail 區塊中:

  • .To 指定收件人。
  • .Subject 指定主旨。
  • .Body 指定內文。
  • .Attachments.Add FilePath 附加檔案。
  • .Display 表示開啟郵件草稿供使用者確認。若改為 .Send 則會直接寄出。
  • 最後使用 MsgBox 提示使用者郵件已建立。

操作步驟與使用方式

  • 將程式碼貼入 Excel 的模組中(例如 Module1)
  • 確保 Outlook 已安裝且開啟
  • 執行 SendFileByEmail 程式
  • 程式會自動建立郵件草稿並附加檔案,使用者可確認後寄出

應用場景與延伸建議

  • 每週報表自動寄送給主管
  • 客戶資料表單自動寄出
  • 教學作業或成績單批次寄送

延伸功能建議:

  • 加入多位收件人(使用 .CC 或 .BCC)
  • 自動根據檔案名稱判斷寄送對象
  • 搭配 PDF 匯出功能,先匯出再寄送
  • 加入錯誤處理(檔案不存在、Outlook 未開啟等)

常見問題 FAQ

Q1:是否可以直接寄出而不顯示草稿?

可以將 .Display 改為 .Send,但建議先測試確認內容無誤。

Q2:是否可以寄送多個附件?

可以使用多次 .Attachments.Add 加入多個檔案。

Q3:是否支援 Gmail 或其他郵件系統?

此程式碼僅支援 Outlook,若需使用 Gmail,需透過 CDO 或 API 寫法,較為進階。

結語與延伸閱讀

這段 VBA 程式碼提供了高效率的「一鍵寄送 Excel 或 PDF 檔案」功能,適合用於報表傳送、文件審核與教學應用。後續你可以加入自動命名、批次寄送、收件人清單等模組,打造完整的郵件自動化工具。

下一篇將介紹如何「一鍵清理 Excel 空白列與欄位」,敬請期待【VBA 自動化教學】第 5 篇!

留言
avatar-img
留言分享你的想法!
avatar-img
蝦仁藥師_臨床輕鬆學的沙龍
30會員
224內容數
哈囉~!這裡主要在分享醫療知識,還有記錄下學習程式語言的各種筆記,偶爾穿插一些個人的淺見與有趣分享,希望大家都可以在這邊得到有用的資訊~!
2025/10/15
在日常報表製作、資料審核或文件提交流程中,將 Excel 工作表匯出為 PDF 是常見需求。透過 VBA,我們可以建立一個「一鍵匯出」功能,自動將指定工作表或整份工作簿轉存為 PDF,節省手動操作時間,並確保格式一致。
Thumbnail
2025/10/15
在日常報表製作、資料審核或文件提交流程中,將 Excel 工作表匯出為 PDF 是常見需求。透過 VBA,我們可以建立一個「一鍵匯出」功能,自動將指定工作表或整份工作簿轉存為 PDF,節省手動操作時間,並確保格式一致。
Thumbnail
2025/10/15
在 Excel 中處理公式輸出、資料轉換或建立可解析字串時,常需要將數值、布林值或錯誤值轉換為文字。VALUETOTEXT 函數能將任何值轉為文字格式,並提供「精簡模式」與「嚴格模式」兩種輸出方式,適合用於資料剖析、公式記錄、動態文字輸出與跨平台資料處理。
Thumbnail
2025/10/15
在 Excel 中處理公式輸出、資料轉換或建立可解析字串時,常需要將數值、布林值或錯誤值轉換為文字。VALUETOTEXT 函數能將任何值轉為文字格式,並提供「精簡模式」與「嚴格模式」兩種輸出方式,適合用於資料剖析、公式記錄、動態文字輸出與跨平台資料處理。
Thumbnail
2025/10/15
在 Excel 中處理匯入資料或跨語系格式時,常會遇到文字型數字無法正確轉換的問題。NUMBERVALUE 函數能依指定的分隔符與地區格式,將代表數值的文字字串轉換為真正的數值格式,特別適合處理歐洲格式(如使用逗號作小數點)或混合符號的資料。它是資料清理、欄位標準化與報表計算前的精準轉換工具。
Thumbnail
2025/10/15
在 Excel 中處理匯入資料或跨語系格式時,常會遇到文字型數字無法正確轉換的問題。NUMBERVALUE 函數能依指定的分隔符與地區格式,將代表數值的文字字串轉換為真正的數值格式,特別適合處理歐洲格式(如使用逗號作小數點)或混合符號的資料。它是資料清理、欄位標準化與報表計算前的精準轉換工具。
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
在這篇教學中,我們將介紹如何使用 Excel VBA 來發送訊息到 LINE Notify。LINE Notify 是 LINE 提供的服務,可以透過 API 發送訊息到 LINE 上。這篇教學將帶你步驟一步完成設置。
Thumbnail
在這篇教學中,我們將介紹如何使用 Excel VBA 來發送訊息到 LINE Notify。LINE Notify 是 LINE 提供的服務,可以透過 API 發送訊息到 LINE 上。這篇教學將帶你步驟一步完成設置。
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
本法省去開啟EXCEL檔,轉存為CSV檔之手動作業,縮短作業時間,提高工作效率,尤其是對象為複數個檔案場合
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
Thumbnail
在Excel中實作使用者介面(UI)是一個有趣且實用的技能,能夠幫助你更好地呈現資料、提供功能並增強使用者體驗。本文將逐步介紹如何在Excel中建立基本的UI元素,例如按鈕、下拉式選單和文字框,並擴展功能,例如資料驗證和動態更新。
Thumbnail
這篇文章介紹瞭如何寫出專業的電子郵件開頭句,分享了六種必備的實用模板,讓你可以根據不同情境或目的,填入關鍵詞套用,讓你的email看起來超專業!
Thumbnail
這篇文章介紹瞭如何寫出專業的電子郵件開頭句,分享了六種必備的實用模板,讓你可以根據不同情境或目的,填入關鍵詞套用,讓你的email看起來超專業!
Thumbnail
在現代職場中,電子郵件是不可或缺的溝通工具。無論是與同事、客戶、還是合作夥伴交流,電子郵件都是最常用的方式之一。然而,並非所有人都能寫出有效且專業的電子郵件。一封好的電子郵件,可以讓你在職場中脫穎而出,並帶來以下好處:提高工作效率:清晰簡潔的電子郵件,可以讓收件人快速掌握重點,並做出回應。
Thumbnail
在現代職場中,電子郵件是不可或缺的溝通工具。無論是與同事、客戶、還是合作夥伴交流,電子郵件都是最常用的方式之一。然而,並非所有人都能寫出有效且專業的電子郵件。一封好的電子郵件,可以讓你在職場中脫穎而出,並帶來以下好處:提高工作效率:清晰簡潔的電子郵件,可以讓收件人快速掌握重點,並做出回應。
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News