Outlook VBA教學在此提供 1套值得學習的範例,直接用Word爬蟲取得新聞網頁資料,設定好收件人相關資訊,自動串連Outlook寄出信件,等於是設計程式建立訂閱機制。
目錄
Toggle於公於私,我們常常收到定期發送的「新聞」郵件,不管是狹義的各新聞報章媒體的最近消息,或者是各類產品各個機構發給會員訂閱者的活動通知,這一章介紹了如何用Excel乃至於Word取得稅務新聞,最後一節簡單分享如何將所取得的網頁內容透過Outlook發送郵件:
一、Outlook VBA
在上一節從Excel到Word,會發現VBA的操作及用法完全一樣,其實大部份Office相關的應用軟體都支持VBA功能,其中Excel是大宗,Word用的機會少一點,這一節剛好會啓動Outlook,順便和讀者介紹一下,如下圖所示,這個辦公室裡相當熟悉的郵件軟體,如同其他Office家族成員,也可以於「檔案」、「選項」中的「自定功能區」,將「開發人員」索引標籤打勾顯示,不過實際操作後,Outlook僅有VBA編輯器及執行巨集按紐,並沒有錄製巨集的選項,這是因為Outlook為收發郵件,不像Excel有許多複雜的資料計算及操作,因此Outlook雖然同樣有VBA,但在功能上是相對簡化了。

二、Word VBA
簡短介紹完Outlook,回到Word,於Word應用軟體中編寫如下VBA程式碼:
10:新增一個「SendMail_Hello」巨集程式;
20:宣告一個新的「MailBox」物件;
30:定義「MailBox」為一個「Outlook.Application」的物件,這是Outlook 物件模型中的最高層級物件,可以把Outlook或者任何一個應用軟體程式想像為一個大資料夾,裡面有很多東西(物件)和指令(方法),而Outlook就是這個大資料夾的名稱,亦即根目錄;
40:定義「mail」為「MailBox」中建立一封新郵件(「CreateItem」)的對象,「(olMailItem)」代表直接使用outlook寄送郵件;
50:針對「mail」編輯方法及屬性,開始一連串的with程式區塊,其實就是以VBA程式碼的方法撰寫新郵件;
60:收件者;
70:主旨;
80:內文;
90:傳送郵件;
100:結束此with區塊;
120:結束「SendMail_Hello」巨集程式

三、Outlook警告及允許
執行「SendMail_Hello」巨集時,outlook會偵測到有其他程式要利用它自動傳送郵件,提出警告,在這個視窗按下「允許」。

四、Hello Word
「Hello, World!」,這是從1972年流傳至今,每個學習電腦程式語言寫出第一個程式的經典用法,通常當電腦螢幕出現這一句話,代表該語言的編譯器、程式開發環境、執行環境已經成功運作。熟悉Wordpress架設網站的讀者,應該也知道網站架設好的第一篇文章便是「Hello, World!」,在這裡沿用此經典傳承,讓VBA第一次自動傳送的郵件也是「你好,世界!」

五、Outlook取消警告
如果經當使用VBA自動傳送郵件,不想每次都看到第三步驟的警告視窗,可以Outlook的「選項」中,將「信任中心」的「以程式設計方法存取」設定為「不要警告我有可能的活動」。

六、Word自動寄信程式
接下來正式編寫Word自動傳送稅務新聞郵件的程式碼:
20:相當於全選Word內容資料;
30:將Word全部內容先統一轉換成文字,然後定義為「news」;
40~120:和第二步程式類似,只不過郵件主旨為「TaxNews」,郵件內文為定義好的變數「news」;
130:郵件傳送完後關閉outlook應用。

七、收到VBA來信
收到了這封由Office自動傳送的稅務新聞郵件,表示在學習VBA自動化的過程中達到了一個里程碑,如同收到「Hello, World!」一樣的驚喜!

Office整合寄信的VBA規劃
這一節在郵件收件者只設定為一個人,不過既然是發送電子郵件,方便的地方在於可以很容易傳送群組信,所以這裡可以設定幾個收件者群組,依照實務上不同狀況的需要,讓Office自動傳送特定內容的郵件,不限於Word文章,Excel的報表圖表當然也沒有問題!
贊贊小屋VBA教學中心:
Excel巨集錄製教學、Excel巨集程式、VBA編輯器、VBA自學入門、VBA基礎語法、VBA基本應用、VBA UserForm、VBA VLOOKUP。
取得範例程式請前往VBA社團,訂閱請加入VBA Line社群。
VBA課程推薦:零基礎入門進階的20小時完整內容