如何定時、定期自動寄送郵件?以下使用利用 EXCEL VBA 及 Outlook來達到自動寄送郵件的目的。而定期、定時這個動作則是使用 Windows Task Schedule (工作排程器)來達成。
設計的邏輯大概如下
1. 使用EXCEL VBA 撰寫一個「用OUTLOOK郵寄」的 VBA 巨集。
2. 開啟工作頁時,執行Workbook_Open巨集,並用此巨集開啟「用OUTLOOK郵寄」。
3. 自動關閉EXCEL應用程式。
EXCEL VBA 程式碼 - 寄送郵件
Sub 用OUTLOOK郵寄() '************* ' ' 設定收件人 ' '************* Dim I As Integer Dim M As Integer Dim ToWho As String I = Sheets("收件人").Range("B2").End(xlDown).Row Sheets("收件人").Select For M = 2 To I ToWho = ToWho & Cells(M, "B") & ";" Next M '設定副本收件人 Dim J As Integer Dim Q As Integer Dim ToWhoCC As String J = Sheets("收件人").Range("F2").End(xlDown).Row Sheets("收件人").Select For Q = 2 To J ToWhoCC = ToWhoCC & Cells(Q, "F") & ";" Next Q '設定郵件主旨 Dim YTMailSubject As String YTMailSubject = Sheets("郵件內容").Cells(1, "B") & " - " & Date '設定郵件內容 Dim YTMailBody As String Dim Signature As String Dim MyAttachmens As Object '郵件內容主體 YTMailBody = Sheets("郵件內容").Cells(2, "B") & Sheets("郵件內容").Cells(4, "B") & Sheets("郵件內容").Cells(5, "B") '簽名檔 Signature = Sheets("郵件內容").Cells(3, "B") Set Outapp = CreateObject("Outlook.application") Set Outmail = Outapp.CreateItem(0) Set MyAttachments = Outmail.Attachments With Outmail .To = ToWho .CC = ToWhoCC .Subject = YTMailSubject 'MyAttachments.Add "C:\【自動化】\已上線\自動郵件-工程預借機提醒\借機表格.xlsx" .HTMLBody = YTMailBody & Signature '.Body = YTMailBody .Send '.Display End With End Sub
搭配設計的 EXCEL 工作頁
收件人:填在「欄位B」
副本收件人:填在「欄位F」
主旨、內容等直接填在相對欄位內即可。填入時請用HTML的格式。
開啟工作頁時,執行巨集
Private Sub Workbook_Open() Dim F As Boolean Dim TEST As String Dim K As Integer TEST = ThisWorkbook.Path F = CreateObject("Scripting.FileSystemObject").FileExists(TEST & "\可執行巨集.txt") '確定有這個檔案,才會去執行 If F = True Then Call 用OUTLOOK郵寄 Application.Quit End If End Sub
撰寫 HTML 格式
上面有提到郵件內容要使用HYML格式,但我們不會HTML的語法要怎麼辦?可以直接到以下網頁中
可以直接在此網頁左欄中編輯你想要的格式,也可在Word、Outlook中編輯好格式後,再將其複製並貼到上面,並網頁上的工具轉換為html格式。
轉換完後,我們再將HTML碼貼到EXCEL相對的欄位即可。
輸入 taskschedlue,並開啟它
建立基本工作
「名稱」:輸入這一個工作的名稱
「描述」:這邊可以針對這個工作做描述,也可以不用寫。
設定工作觸發的時間、週期
上一步我們是選擇「每週」,所以還可以選擇是哪幾天
選擇我們上述設定的EXCEL的範本
執行完上述步驟,即完成定期寄送郵件的設定。
留言列表