Excel 教學-從 Excel 傳送電子郵件
通常我們會使用 Outlook、Gmail 等電子郵件用戶端來傳送郵件。然而,許多人將資料儲存在 Excel 工作表中,並在處理資料時需要將部分內容傳送給他人。此時,若能直接從 Excel 工作表寄送電子郵件,就能省去切換至電子郵件用戶端的繁瑣步驟,大幅提升效率。本逐步教學將帶您了解如何在不同條件下,直接從 Excel 傳送電子郵件。
注意:在套用以下方法前,請先在電腦上設定 Outlook 電子郵件用戶端,並設為預設電子郵件程式。
目錄:[ 隱藏 】
1. 從 Excel 傳送電子郵件的基本概念
本節介紹從 Excel 傳送電子郵件的基本概念。
1.1 使用 Excel 內建功能從 Excel 傳送電子郵件
若您只需從 Excel 傳送簡易電子郵件,內容僅包含收件者、主旨、副本(Cc)與內文欄位,即可直接運用 Excel 的內建功能輕鬆完成。
如下表所示,若要根據指定欄位從 Excel 傳送不同電子郵件,您可利用該欄位的儲存格參照,建立對應的超連結公式。設定完成後,只需點擊所需連結,即可自動傳送電子郵件。
注意:若「收件者」或「副本」欄位包含多位收件人,請以分號分隔。

本節分為四個部分,逐步說明如何將郵件地址、副本收件者、主旨與內文逐一加入超連結公式中。請依照下列步驟操作。
「HYPERLINK」函數的語法與引數如下:
語法
HYPERLINK(link_location, [friendly_name])
引數
此處我們將「mailto:」作為公式的一部分,用來新增電子郵件收件者。在此範例中,第一位收件者的郵箱地址位於 B2 儲存格,因此需在公式中加入「mailto:」並參照 B2 儲存格。
“mailto:”&B2
1. 選取一個儲存格以顯示超連結。本例中,我選擇了 F2 儲存格。
2. 接著在該儲存格中輸入以下公式。
=HYPERLINK("mailto:"&B2) 
注意:按下「ENTER 鍵」後,系統將建立如下方截圖所示的超連結。當您點擊該連結時,Outlook 會自動開啟新郵件視窗,並在「收件者」欄位中填入對應的電子信箱地址。

收件者的電子信箱地址已嵌入超連結公式中。請依需求繼續以下步驟,新增主旨、副本收件者及內文。
若要在超連結函數中加入副本收件者,請於公式中加入「?cc=」,如下所示。
F2 儲存格中的公式應如下所示:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2) 
若要將主旨加入超連結函數,請在公式中加入「&subject=」,如下所示。
F2 儲存格中的公式現在應如下所示:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2) 
最後一步是將內文加入超連結公式。如範例所示,E2 儲存格中的兩行文字以換行符號分隔,而您希望在電子郵件內文中保留此換行格式。在此情況下,Outlook 能否正確識別這些換行符號?讓我們實際驗證一下。
若要將內文加入超連結公式中,請在公式內加入「&body=」,如下所示。
F2 儲存格中的公式現在顯示如下:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2) 
注意:若您按下「ENTER 鍵」並點擊連結,電子郵件內文將會在新郵件中顯示於同一行。

若要讓電子郵件內文分行顯示,請修改儲存格內容,並在需要換行的位置加入回車符字元代碼「%0A」。詳情請參閱下圖:

在上述步驟中,我們已完成超連結公式中的 email 欄位(Link_location 參數)。本節將繼續完成下一個參數 【friendly_name】。
在此範例中,我希望超連結的儲存格將文字顯示為「寄信給 xx」,其中 xx 為 A2 儲存格中的收件者姓名。因此,F2 儲存格中的公式應調整如下:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2) 按下「Enter 鍵」即可取得結果。

選取此公式儲存格,並向下拖曳「自動填滿控制點」,即可快速建立其他電子郵件超連結。請參閱下圖:

除了使用上述超連結公式外,您也可以手動透過 Excel 的「建立超連結」功能來建立電子郵件超連結。本節將為您說明詳細步驟。
1. 在您要插入超連結的儲存格上按一下滑鼠右鍵,然後從快捷選單中選擇「連結」。

2. 在彈出的「建立超連結」對話方塊中,請依下列方式進行設定。

當您點擊超連結時,系統將自動開啟 Outlook 並建立新郵件,同時填入預設的收件者、主旨與內文欄位,如下圖所示。

注意事項:
1.2 使用 VBA 腳本向儲存格中的多位收件者傳送電子郵件
如上例所示,您會看到多個郵箱地址顯示在同一儲存格中,並以分號分隔。若您擁有如下圖所示的郵箱地址清單,並希望傳送一封郵件(或各自獨立的郵件)給所有收件者,下列 VBA 程式碼可助您輕鬆達成目標。

1.2.1 使用 VBA 腳本向儲存格中的多位收件者傳送一封電子郵件
1. 在包含所有欲傳送郵件之收件人信箱地址的工作表中,按下「Alt」+「F11」鍵,開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,並將下列程式碼貼到「模組(程式碼)」視窗中。

VBA 程式碼:向一組郵箱地址傳送電子郵件
Sub sendmultiple()
'updateby Extendoffice 20220802
Dim xOTApp As Object
Dim xMItem As Object
Dim xCell As Range
Dim xRg As Range
Dim xEmailAddr As String
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xOTApp = CreateObject("Outlook.Application")
For Each xCell In xRg
If xCell.Value Like "*@*" Then
If xEmailAddr = "" Then
xEmailAddr = xCell.Value
Else
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
Next
Set xMItem = xOTApp.CreateItem(0)
With xMItem
.To = xEmailAddr
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
End With
End Sub 3. 按下「F5」鍵執行程式碼,隨即彈出「Kutools for Excel」對話方塊;請選取您的郵箱地址清單,然後點擊「確定」。

注意事項:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel" 執行程式碼後,所選區域中的所有電子信箱地址將自動顯示在郵件視窗的「收件者」欄位中。請參閱下圖:

1.2.2 使用 VBA 腳本分別向儲存格中列出的每位收件者傳送電子郵件
上述程式碼會將所選區域中的所有電子郵件地址加入郵件視窗的「收件者」欄位。若您希望分別向儲存格中列出的每位收件者傳送郵件,並確保他們彼此看不到對方的電子郵件地址,可嘗試下列 VBA 腳本。
1. 在包含所有欲傳送郵件之收件人信箱地址的工作表中,按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點擊「插入」>「模組」,並將下列程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:分別向儲存格中的每位電子郵件地址列表傳送郵件
Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each xRgEach In xRg
xRgVal = xRgEach.Value
If xRgVal Like "?*@?*.?*" Then
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.To = xRgVal
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
'.Send
End With
End If
Next
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub 3. 接著點擊「工具」>「參考設定」。在「參考設定 – VBAProject」對話方塊中,找到並勾選「Microsoft Outlook 16.0 物件程式庫」,然後點擊「確定」以儲存變更。

4. 按下「F5」鍵執行程式碼,隨即彈出「Kutools for Excel」對話方塊;請選取您的郵箱地址清單,然後點擊「確定」。

注意事項:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel" 在此範例中,選取區域包含六個郵箱地址,系統將自動開啟六個 Outlook 郵件視窗,每個視窗的「收件者」欄位均填入對應的獨立電子郵件地址,如下圖所示。

5. 最後,逐一點擊「傳送」按鈕,即可寄出郵件。
2. 在從 Excel 傳送的電子郵件中加入插入附件或 Outlook 簽名檔(使用 VBA 腳本)
本節將說明如何在從 Excel 傳送的電子郵件中插入附件或加入 Outlook 預設簽名檔。
2.1 在從 Excel 傳送的電子郵件中加入插入附件
這裡說明了插入附件的各種情境,您可以根據實際需求選擇最適合的方法。本節將為您介紹以下操作(點擊任一連結即可直接跳轉至對應方法):
您可以套用下列 VBA 程式碼,從 Excel 將資料夾中的一個或多個檔案作為附件寄送電子郵件。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,然後將下列 VBA 程式碼貼上至「模組(程式碼)」視窗中。
VBA 程式碼:從 Excel 將資料夾中的檔案以附件形式寄送電子郵件
Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xMailOut
.BodyFormat = olFormatRichText
.To = "xxx@aaa.com"
.Subject = "test"
.HTMLBody = "test"
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub 注意事項:
3. 接著點選「工具」>「參考設定」,在「參考設定 – VBAProject」對話方塊中,找到並勾選「Microsoft Outlook 16.0 物件程式庫」,然後點選「確定」按鈕儲存變更。

4. 按下「F5」鍵執行程式碼,系統將彈出「瀏覽」視窗,請選取要附加至郵件的檔案,再點擊「確定」。

接著將彈出郵件視窗,您可看到所選檔案已顯示在「附加」欄位中作為附件。

若您希望將目前的工作表從 Excel 以附件形式寄送電子郵件,可使用本節提供的 VBA 指令碼。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,然後將下列 VBA 程式碼貼上至「模組(程式碼)」視窗中。
VBA 程式碼:將當前工作表以附件形式寄送電子郵件
Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub 注意事項:
3. 按下「F5」鍵執行程式碼,當前工作表便會自動儲存為 Excel 檔案,並插入至郵件視窗作為附件。請參閱截圖:

注意:僅包含目前工作表的附加活頁簿會與原始活頁簿同名,且執行程式碼的時間也會一併加入活頁簿名稱中。
學習如何使用 VBA 程式碼將目前工作表以附件形式透過電子郵件傳送後,這裡再提供另一段 VBA 指令稿,協助您將整個活頁簿以附件形式寄送電子郵件。請依照下列步驟操作:
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,並將下列 VBA 程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:從 Excel 將當前工作簿以附件形式寄送電子郵件
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 注意事項:
3. 按下「F5」鍵執行程式碼,當前工作簿便會自動附加至新郵件視窗中。請參閱截圖:

對多數人來說,通常會先將 Excel 工作表儲存為 PDF 檔案,再以附件形式傳送給他人。本節將示範一種更便捷的方法:直接從 Excel 寄送電子郵件,並自動將目前開啟的活頁簿轉為 PDF 附件,無需手動另存為 PDF 檔案。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,然後將下列 VBA 程式碼貼到模組(程式碼)視窗中。
VBA 程式碼:將整個活頁簿以 PDF 附件形式寄送電子郵件
Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName
Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
FilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FilePath
.Display 'or use .Send
End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub 注意事項:
3. 按下「F5」鍵執行程式碼,當前工作簿便會自動以 PDF 檔案形式附加至新郵件視窗。請參閱截圖:

例如,您有一個名為「每月銷售」的活頁簿,並已在名為「銷售報表」的工作表中完成一份銷售報表,現在希望將該工作表以 PDF 檔案形式傳送給同事。以下 VBA 程式碼可協助您輕鬆達成此目的。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,然後將下列 VBA 程式碼貼上至「模組(程式碼)」視窗中。
VBA 程式碼:將當前工作表以 PDF 附件形式寄送電子郵件
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 注意事項:
3. 按下「F5」鍵執行程式碼,當前工作表便會自動以 PDF 檔案形式插入至新郵件視窗作為附件。請參閱截圖:

2.2 在從 Excel 寄送的電子郵件中插入 Outlook 簽名檔
以上述案例為例,當您使用前述 VBA 程式碼從 Excel 將目前工作表以 PDF 檔案作為附件寄送電子郵件時,無法在郵件視窗中自動加入 Outlook 簽名檔。若希望從 Excel 寄出的電子郵件保留 Outlook 預設簽名檔,可透過下列方法達成此目的。
下方列出兩段 VBA 程式碼。
VBA 程式碼 1:此程式碼可協助您保留 Outlook 簽名檔。
VBA 程式碼 2:此程式碼可協助您將目前的工作表以 PDF 附件形式傳送電子郵件。
VBA 程式碼 1:保留 Outlook 簽名檔
.HTMLBody = "Email body" & "
" & .HTMLBody VBA 程式碼 2:將當前工作表以 PDF 附件形式寄送電子郵件
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 1. 通常您只需按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,依次點選「插入」>「模組」,然後將上述 VBA 程式碼 2 貼到「模組(程式碼)」視窗中。
3. 若要在從 Excel 寄送的電子郵件中保留 Outlook 的預設簽名檔,請依下列方式修改 VBA 程式碼 2:

以下是修改後的完整程式碼。
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Display
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.HTMLBody = "Email body" & "
" & .HTMLBody
.Attachments.Add FileName
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 4. 按下「F5」鍵執行程式碼,隨即開啟新郵件視窗,當前工作表已自動附加為 PDF 檔案,且 Outlook 預設簽名檔也會插入至郵件內文末端。

3. 當符合特定條件時,自動透過 Excel 寄送電子郵件(使用 VBA 指令碼)
在上述範例中,您需手動執行程式碼才能寄送電子郵件。若您希望在符合特定條件時(例如:當某儲存格達到特定數值、儲存格內容變更,或日期到達時)自動觸發程式碼,系統便會自動寄送電子郵件。本節列出 Excel 使用者經常在 Google 中搜尋的觸發條件,協助您在條件成立時自動從 Excel 寄送電子郵件。
3.1 當儲存格達到特定數值時自動寄送電子郵件
如下方截圖所示,假設您有一份銷售表格,其中 D6 儲存格包含銷售總額。當您希望根據銷售總額自動寄送電子郵件給主管時,可設定條件:若銷售總額超過 10,000,系統便自動建立並寄送電子郵件;若銷售總額小於或等於 10,000,則不執行任何操作。

1. 在包含銷售表格的工作表中,於工作表標籤上按一下滑鼠右鍵,然後從快捷功能表中選擇「檢視程式碼」。

2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,請將下列 VBA 程式碼貼到「工作表(程式碼)」視窗內。

VBA 程式碼:在 Excel 中當儲存格達到特定數值時自動寄送電子郵件
Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub 注意事項:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6") 從現在起,當 D6 儲存格的數值超過 10,000 時,系統將自動產生一封電子郵件,如下方截圖所示。

3.2 當儲存格數值變更時自動寄送電子郵件
如下方截圖所示,假設您收到一份活頁簿,其中包含多個工作表的每月銷售資料,以及一個彙總銷售總額的工作表。您需要驗證該銷售總額是否正確;若發現總額遭修改,請將活頁簿寄回給寄件者,並通知對方該儲存格內容已變更。

1. 在包含銷售表格的工作表中,於工作表標籤上按一下滑鼠右鍵,然後從快捷功能表中選取「檢視程式碼」。

2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,請將下列 VBA 程式碼貼到「工作表(程式碼)」視窗內。
VBA 程式碼:當指定儲存格數值變更時自動寄送電子郵件
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")
Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If
ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub 注意事項:在程式碼中,
從現在起,只要 B14 儲存格的數值一變更,系統就會自動建立如下方截圖所示的 Outlook 郵件。

3.3 當儲存活頁簿時自動寄送電子郵件
若您有一份活頁簿,修改後需與他人共享,通常必須先儲存檔案,再啟動電子郵件用戶端、建立一封附帶該活頁簿的新郵件、填寫相關欄位,最後寄出郵件。本節將示範一種方法,讓您每次儲存活頁簿時自動產生電子郵件。請依下列步驟操作。
1. 按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 在此視窗中,於「專案」窗格內雙擊「ThisWorkbook」,並將下列 VBA 程式碼貼上至「ThisWorkbook(程式碼)」視窗中。

VBA 程式碼:當儲存活頁簿時自動寄送電子郵件
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
Dim xOutApp As Object
Dim xMailItem As Object
Dim xName As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xName = ActiveWorkbook.FullName
With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "The workbook has been updated"
.Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
.Attachments.Add xName
.Display
'.send
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End Sub 注意事項:在程式碼中,
3. 從現在起,當您按下「Ctrl」+「S」鍵或點擊「儲存」按鈕儲存活頁簿時,系統將自動建立一封 Outlook 電子郵件,其中已附上目前的工作簿,且各欄位皆填入指定內容。請參閱以下截圖:

提示:若您經常使用此活頁簿,建議將其另存為「Excel 啟用巨集活頁簿」,以便日後繼續使用 VBA 指令碼。步驟如下:

3.4 在特定時間自動寄送電子郵件
假設您希望每週五上午九點自動透過電子郵件傳送一份任務指派活頁簿給指定對象,並在 Excel 中全自動完成此操作,無需手動介入郵件客戶端。本節將為您示範如何實現這項功能。
1. 按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,然後將下列 VBA 程式碼貼到模組視窗中。

VBA 程式碼 1:從 Excel 將當前工作簿作為附件寄送電子郵件
Sub Timer()
If Weekday(Date) = vbFriday Then
SendWorkBook
Application.OnTime TimeValue("09:00:00"), "Timer"
Else
Application.OnTime TimeValue("09:00:00"), "Timer"
End If
End Sub
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 3. 在此視窗中,於「專案」窗格內雙擊「ThisWorkbook」,然後將下列 VBA 程式碼貼到「ThisWorkbook (程式碼)」視窗中。

VBA 程式碼 2:在指定時間自動寄送電子郵件
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub 注意事項:
4. 儲存程式碼後,請依照下列方式將活頁簿另存為啟用巨集的 Excel 活頁簿。

5. 開啟您已儲存的啟用巨集活頁簿,系統將於指定日期與時間自動建立或寄送電子郵件。
4. 其他主題
本節彙整了您在 Excel 中寄送電子郵件時可能遇到的其他相關主題。
4.1 從 Excel 寄送儲存格範圍(使用 VBA 指令碼)
假設您的 Excel 工作表中有一份如以下螢幕截圖所示的月度銷售表格,而您需要將此表格直接作為電子郵件內文或附件傳送給他人。我們在此提供兩種方法供您選擇。

4.1.1 從 Excel 將儲存格範圍作為電子郵件本文的一部分寄送
您可以執行下列 VBA 程式碼,將 Excel 中的儲存格範圍直接作為電子郵件內文寄出。
1. 按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 在「Microsoft Visual Basic for Applications」視窗中,依次點選「工具」>「參考設定」,勾選「Microsoft Outlook 16.0 物件程式庫」核取方塊,然後於「參考設定 – VBAProject」對話方塊中按一下「確定」。

3. 按一下「插入」>「模組」,並將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:從 Excel 將儲存格範圍作為電子郵件本文的一部分寄送
Sub SendARangeofCells()
'Updated by Extendoffice 20220809
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xMailOut As Object
Dim xOutApp As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Subject = "test"
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = RangetoHTML(xRg)
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
' The following VBA script is cited from this page:
' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'Read all data from the htm file into RangetoHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
'Close TempWB
TempWB.Close savechanges:=False
'Delete the htm file we used in this function
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function 注意事項:在程式碼中,
4. 按下「F5」鍵以執行程式碼。在彈出的「Kutools for Excel」對話方塊中,選取您要作為電子郵件內文寄送的儲存格範圍,然後按一下「確定」。請參閱螢幕截圖:

接著將自動建立一封 Outlook 電子郵件,您可看到工作表中選取的範圍已插入至郵件內文。請參閱以下螢幕截圖:

若您想將工作表中的儲存格範圍作為附件,透過 Excel 寄送電子郵件,可試用以下 VBA 程式碼。
1. 按下「Alt」+「F11」鍵。
2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,點選「插入」>「模組」,然後將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:從 Excel 將儲存格範圍作為附件寄送
Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Monthly sales for 2021"
.Body = "Hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub 注意事項:
3. 按下「F5」鍵以執行程式碼。在彈出的「Kutools for Excel」對話方塊中,選取您要作為電子郵件附件傳送的儲存格範圍,然後按一下「確定」。請參閱螢幕截圖:

接著將自動建立一封 Outlook 電子郵件,您在工作表中選取的儲存格範圍會以 Excel 工作表形式儲存,並附加至郵件視窗中。請參閱以下螢幕截圖:

4.2 在 Excel 中按一下按鈕即寄送電子郵件
如果您希望透過點擊命令按鈕來觸發巨集,從 Excel 寄送電子郵件(例如:點擊工作表中的命令按鈕,將目前的工作簿作為附件傳送給他人),請依照下列步驟操作。
1. 按一下「開發人員」>「插入」>「命令按鈕(ActiveX 控制項)」,然後在工作表中繪製一個命令按鈕。
提示:若您已設置命令按鈕,請直接跳過此步驟。

2. 按下「Alt」+「F11」鍵,開啟「Microsoft Visual Basic for Applications」視窗;接著點選「插入」>「模組」,並將用於從 Excel 以電子郵件附件形式傳送目前工作簿的 VBA 程式碼,貼入「模組(程式碼)」視窗中。

注意:此處您在步驟 2 中建立的巨集名稱為「SendWorkbook」。
3. 按下「Alt」+「Q」鍵,即可關閉「Microsoft Visual Basic for Applications」視窗。
4. 現在,您需要將巨集指派給命令按鈕:請以滑鼠右鍵按一下該按鈕,並從快捷選單中選擇「檢視程式碼」。

5. 此時將彈出「Microsoft Visual Basic for Applications」視窗,您可在「工作表(程式碼)」視窗中看到以下兩行程式碼。
Private Sub CommandButton1_Click()
End Sub 
6. 在命令按鈕的副程式中輸入現有巨集的名稱。

7. 按下「Alt」+「Q」鍵關閉「Visual Basic 編輯器」,再點選「開發人員」>「設計模式」以退出設計模式。

現在,只需輕點一下命令按鈕,就能立即寄送一封附帶目前工作簿的電子郵件。
4.3 從指定的電子郵件帳戶寄送電子郵件
一般情況下,透過 VBA 程式碼從 Excel 啟動電子郵件時,寄件者會自動使用 Outlook 中的預設帳戶。若您已在 Outlook 中設定多個電子郵件帳戶,並希望從 Excel 寄信時指定使用特定帳戶(而非預設帳戶),以下 VBA 程式碼可協助您達成此目的。
在此情況下,必須使用下列程式碼。
VBA 程式碼 1:
Dim OutlookMail As Outlook.MailItem VBA 程式碼 2:
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next 如何使用上述 VBA 程式碼?
在此範例中,我們將指定特定的電子郵件帳戶,從 Excel 將目前的工作簿作為附件寄送電子郵件。請依照下列步驟操作。
1. 按下「Alt」+「F11」鍵,開啟「Microsoft Visual Basic for Applications」視窗後,點選「工具」>「參考設定」,勾選「Microsoft Outlook 16.0 物件程式庫」方塊,然後在「參考設定 – VBAProject」對話方塊中按一下「確定」。

2. 按一下「插入」>「模組」,然後將下列 VBA 程式碼貼到「模組(程式碼)」視窗中。
VBA 程式碼:透過指定的 Outlook 帳戶,從 Excel 將當前工作簿作為電子郵件附件寄送
Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 3. 按下「F5」鍵執行程式碼,隨即會彈出一封 Outlook 電子郵件,其中「寄件者」欄位已自動填入您在程式碼中指定的電子郵件帳戶。
4.4 當日期到達時自動寄送電子郵件
如果您需要根據特定截止日期自動寄送電子郵件,例如下圖所示的專案表格:當儲存格範圍 E2:E7 中的截止日期距離今天(假設目前日期為 2022/8/4)少於或等於 7 天時,系統將自動寄送電子郵件給對應的專案負責人,提醒他們專案即將到期。

1. 在包含專案表格的工作表中,於工作表標籤上按一下滑鼠右鍵,然後從快捷選單中選擇「檢視程式碼」。

2. 在開啟的「Microsoft Visual Basic for Applications」視窗中,請將下列 VBA 程式碼貼到「工作表(程式碼)」視窗內。
VBA 程式碼:當符合截止日期時自動寄送電子郵件
Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "
"
xMailBody = ""
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub 注意事項:在程式碼中,
3. 按下「F5」鍵執行程式碼,若到期日期符合條件,系統將自動生成對應的電子郵件。在此案例中,會建立兩封電子郵件,如下圖所示。

5. 一款協助您輕鬆從 Excel 寄送電子郵件的實用工具
如果您是 VBA 新手,上述方法可能較難掌握。在此推薦您使用「Kutools for Excel」的寄送電子郵件功能,只需幾個簡單步驟,就能輕鬆從 Excel 寄送電子郵件!請依照下列步驟操作:
5.1 輕鬆建立包含所需電子郵件欄位的郵件列表
在使用「寄送電子郵件」功能前,您需先建立一個包含所需電子郵件欄位的郵件列表,此時「建立郵件清單」功能可協助您輕鬆完成。
1. 按一下「KUTOOLS PLUS」>「建立郵件清單」。

2. 在開啟的「建立郵件清單」視窗中,請完成以下設定。

接著將建立如下圖所示的範例郵件列表表格。

3. 現在,請將範例中的原始資料替換為您自己的欄位資料。

您已成功建立郵件列表表格,接下來請直接使用「寄送電子郵件」功能,依據您設定的欄位從 Excel 寄出郵件。
Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
5.2 輕鬆寄送包含您在郵件列表中建立之欄位的電子郵件
在建立包含您電子郵件所需欄位的郵件列表後(按一下以瞭解詳情),您現在即可從 Excel 寄送包含這些欄位的電子郵件。
1. 選取整個郵件列表,然後點擊「KUTOOLS PLUS」>「寄送電子郵件」。

2. 在「寄送電子郵件」對話方塊中,請完成以下設定。

3. 接著會彈出「Kutools for Excel」對話方塊,顯示您已成功寄送的電子郵件數量,請點擊「確定」按鈕關閉此對話方塊。
提示:您可以前往 Outlook 的「已傳送郵件」資料夾,確認您寄出的電子郵件。

5.3 輕鬆寄送含 HTML 內文的電子郵件(包含超連結、圖片等)
此「寄送電子郵件」功能讓您輕鬆建立 HTML 格式的電子郵件,內含超連結、圖片,以及多樣化的字體大小與顏色。
建立包含您電子郵件所需欄位的郵件列表後,當您在設定「寄送電子郵件」對話方塊時,即可透過工具列上的選項讓內文內容更加豐富。
請參閱下方截圖:

5.4 寄送電子郵件時輕鬆插入 Outlook 預設簽名
在上述方法中,我們示範了一段 VBA 程式碼,協助您使用 Outlook 預設簽名寄送電子郵件。透過「寄送電子郵件」功能,只需勾選一個選項,即可在從 Excel 寄出的郵件中自動插入 Outlook 預設簽名。
建立包含您電子郵件所需欄位的郵件列表後,在設定「寄送電子郵件」對話方塊時,請點選「選項」>「使用 Outlook 的簽名設定」。
注意:請確認「使用 Outlook 的簽名設定」選項前方已顯示勾選記號。

收件者收到電子郵件時,便會在郵件內文結尾處看到 Outlook 的預設簽名。
5.5 輕鬆從指定的電子郵件帳戶寄送電子郵件
若要使用特定電子郵件帳戶(而非預設帳戶)從 Excel 寄送郵件,「寄送電子郵件」功能也能輕鬆幫您搞定。
建立包含您電子郵件所需欄位的郵件列表後,在設定「寄送電子郵件」對話方塊時,請點選「選項」>「寄件自」,然後選擇您要用來寄送郵件的電子郵件帳戶。
注意:選取電子郵件帳戶後,其前方會顯示勾選記號。

Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
總結來說,從 Excel 寄送電子郵件在我們的日常工作中極具實用價值。本文涵蓋了多項相關主題,若您有其他相關議題或更簡便的解決方案,歡迎留言分享!
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用