以「交易確認單郵件規則設定工具」為例
解析如何透過 VBA 達成大規模郵件的精準歸類
在日常的交易與後勤作業中,信箱隨時都在接收各種通知:
大量合約與交易狀態回報單
各家基金公司的分配明細
排程結果與報表產出通知
面對上述海量信件,依賴人工處理或逐一設定 Outlook 規則會遭遇:
與其在 Outlook 介面上點擊幾百次,不如:
這就是開發「郵件規則設定工具」的核心精神。
Outlook 提供強大的規則引擎,我們只需將設定過程自動化:
在日常作業中,各家基金公司寄送的「交易確認單」主旨格式不一,人工歸檔易錯。我們利用此工具實現:
工具的核心是一張二維對映表,定義了「主旨包含什麼字」就丟進「哪個資料夾」:
| 業務類別 | 信件主旨包含關鍵字 | 目標資料夾 |
|---|---|---|
| 申轉贖 | Contract note as | \交易確認\申轉贖區 |
| 除息作業 | Corporate Actions DIV | \交易確認\除息區 |
| 除權作業 | Distribution - ICInvesco | \交易確認\除權區 |
在 VBA 腳本中,我們必須先取得 Outlook Application 的控制權:
' 宣告並建立 Outlook 應用程式物件
Dim olApp As Object
Dim olNamespace As Object
Dim olFolder As Object
Set olApp = CreateObject("Outlook.Application")
Set olNamespace = olApp.GetNamespace("MAPI")
' 指向使用者的收件匣
Set olFolder = olNamespace.GetDefaultFolder(6) ' 6 代表 Inbox
這段程式碼是打破 Excel 與 Outlook 藩籬的橋樑。
利用迴圈讀取表格後,呼叫 Rules.Create 動態綁定條件與動作:
Rule.Conditions.Subject:寫入從表格讀取的關鍵字。Rule.Actions.MoveToFolder:指定信件最終歸宿。優勢: 迴圈執行 100 次只需不到 3 秒,徹底取代人力點擊。
第一步:規劃您的 Outlook
在執行自動化之前,必須先在您的收件匣底下,建立好對應的實體資料夾階層。
收件匣
└ 申轉贖
└ 除權息
開啟附檔 交易確認單郵件規則設定工具.xlsm
工具啟動後,將會跳出視窗,要求您逐一選定或確認對應的資料匣路徑。
程式執行完畢後,請務必進行最後驗證:
[工具產生] 為首的新規則。| 比較維度 | 傳統手動設定 | 程式自動化建立 |
|---|---|---|
| 時間成本 | 單筆約需 3 分鐘 (百筆需數小時) | 一鍵執行,3 秒完成 |
| 正確性 | 易手誤、選錯資料夾 | 100% 依據表格對應 |
| 人員交接 | 新進人員須重新手動拉規則 | 交接單一 Excel 檔案即可 |
掌握了「信箱程式化控制」的技術,我們還可以擴展至:
利用規則將信件自動轉寄給 RPA 信箱(如每日自動觸發申購流程)。
開發「外部郵件清檔工具」,批量刪除主旨含特定警語之無效信件。
讓機器處理規律,將大腦留給決策。
感謝各位的參與!