痛點場景:Outlook 無法直接引用附件檔名,導致工作流斷裂
在日常郵件撰寫中,當一封信附上多個檔案(例如報價單、簡報、文件)時,必須在內文標註對應的附件名稱。Outlook 並沒有提供「直接插入附件名稱」的功能,造成以下實務問題:
- 附件已經拖進郵件,但內文仍需手動補充說明
- 使用者需要開啟檔案來源資料夾重新找檔名
- 多附件時,需重複操作數次
這個流程的問題是:Outlook 的附件區與內文編輯區完全分離,沒有可程式化引用機制
實際痛點:撰寫時間增加(尤其附件多時)、檔名錯誤(手打或複製錯位)
要解決的問題很明確:在「寫信當下」快速插入附件檔名,且不離開編輯區
透過 AI 明確拆解問題並產出可行解法(VBA)
與 AI 互動的過程,不是問「怎麼優化」,而是直接拆解需求:
核心需求定義:
- 能抓取當前 MailItem 的附件清單
- 能在郵件內文插入附件名稱
- 最好不需額外 UI(先求可用)
AI 的回應方向會集中在 Outlook 可用的三種機制:

最終選擇 VBA,原因很直接:
- 不需部署環境
- 可直接操作 Outlook 物件模型
- 支援 MailItem.Attachments
AI 產出最小可行版本(MVP)如下:
Sub InsertAttachmentNames()
Dim mail As Outlook.MailItem
Dim att As Outlook.Attachment
Dim text As String
Set mail = Application.ActiveInspector.CurrentItem
If mail.Attachments.Count = 0 Then
MsgBox "沒有附件"
Exit Sub
End If
text = "請參考附件:" & vbCrLf
For Each att In mail.Attachments
text = text & "- " & att.FileName & vbCrLf
Next
mail.Body = mail.Body & vbCrLf & text
End Sub
這段程式碼已完成:
- 讀取附件集合
- 逐一抓取檔名
- 組成格式化文字
- 插入郵件內容
將 VBA 實際放進 Outlook 並可執行
AI 產出程式碼後,下一個問題不是邏輯,而是部署位置與執行方式。
Outlook VBA 並不像 Excel 有明確入口,需手動設定。
以下為完整可操作步驟:
✔ 開啟 VBA 編輯器
- 開啟 Outlook
- 按:
Alt + F11 - 左側展開:
Project1 (VbaProject.OTM)
✔ 建立模組
- 右鍵點擊:
Microsoft Outlook Objects - 選擇:
Insert → Module
✔ 貼上程式碼
將上述 VBA 貼入 Module1
✔ 開啟巨集權限
- Outlook → 檔案 → 選項
- 信任中心 → 信任中心設定
- 巨集設定選擇:
通知所有巨集
✔ 執行巨集
- 在寫信視窗:
Alt + F8 - 選擇:
InsertAttachmentNames
到這邊已經可以使用,但仍有一個實務問題:操作入口不直覺,仍需要快捷鍵觸發
在郵件撰寫畫面加入巨集按鈕(解決操作摩擦)
真正影響採用率的不是功能,而是使用成本。
如果每次都要:
- Alt + F8
- 找 macro
- 點執行
實際上不會長期使用,因此需要把 VBA 掛到 UI。
✔ 目標
將巨集加到「寫信視窗的快速工作列」
✔ 操作步驟
- 點擊新增電子郵件
- 點左上角小箭頭
- 點:其他命令
- dropdown 選「巨集」
- 加入你的 macro
- 點擊確定儲存
- 會看到左上角小箭頭旁邊新增了一個巨集按鈕
點擊後會直接:
👉 插入所有附件檔名
補充:進階版本(插入游標位置)
如果不想全部加在最底,可改用:
Dim insp As Outlook.Inspector
Set insp = Application.ActiveInspector
insp.WordEditor.Application.Selection.TypeText text
效果:
- 插入在游標所在位置
- 更接近「即時編輯」
10 分鐘 AI 互動,完成可投入日常使用的工具
這個案例不是在研究 AI 能做什麼,而是:如何把一個低效日常操作變成可重用工具
整個過程拆解如下:
- 明確提出痛點(附件與內文斷裂)
- 用 AI 快速收斂技術解(選 VBA)
- 生成最小功能版本
- 補齊部署(VBA 放置)
- 優化 UX(Ribbon 按鈕)
整體耗時約 10 分鐘,產出結果:
- 一個實際可用的 Outlook 自動化工具
- 無需安裝額外軟體
- 不依賴 IT 部門
重點不在 VBA,而是: 用 AI 加速「工作流程重構」而非單一指令優化。

























