2008-12-29

Outlook Automation

因為gmail實在太強了 所以 想把所有的信 都用gmail的當做備份+搜尋的地點

因為,公司的mail 有自動轉寄功能

所以,先前設定所有寄給我的信 都會轉到我的 gmail 帳號一份

但是,針對自已寄出的信 就沒輒了~

基本上 想的方式是這樣:

* 每次寫信 or 回信時 把 gmail account 加到 BCC 內 再寄出

不過,每次都要加 也很煩人(且 outlook 要加 bcc 比較麻煩)

so, 就想說 excel 的 macro 有沒有辦法做到

基本上,就滿簡單的

基本想法如下:

方法A: 自訂寫信、回信的功能,在 outlook 裡面 去定義 macro並編輯它
會進入 VBA 的程式寫作介面,在裡面 去定義macro要做什麼事
舉例來講,我定義了這樣一個函式後,再到 outlook 工具->自訂->指令 把這function加入 outlook 的 menu,以後 我只要點這按鈕,就會啟動一個新信件編輯視窗,並且 default就有bcc 自已~ 很簡單吧

Sub MinChuanNewMail()
Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olMailItem)
myItem.BCC = "minchuan@cht.com.tw"
myItem.Display
End Sub

不過,回信的部分 要處理 就要再研究一下

方法B: handle outlook 發信的 event - 在 發信前 將 gmail account 加到 bcc

基本上,針對 ThisOutlookSession 這個 Application object的 event 進行 handle 就行了
像是這樣:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Item.BCC = "minchuan.wang@gmail.com"
End Sub

夠簡單吧!!

不過,這個有一個問題
Default 這樣的巨集 會被outlook停用 ><~
所以 暫時解法是 將 macro 的信任等級調低
不然,就可能要透過 macro sign 的機制,把macro簽署過 這樣outlook 才會信任 :Q

--
reference: http://msdn.microsoft.com/en-us/library/aa246142(office.11).aspx

沒有留言: