2009年10月8日 星期四

Outlook 相關郵件工具 ----『相關訊息』的 VBA 巨集

上一篇 提到, 在 Outlook 2007 可以手動將『進階尋找』增加到工具列。但是之前的嘗試, 卻無法找到『相關訊息』和『自寄件者郵件』來加到工具列。

其實, 這部份可以用 VB 巨集的方式來達成 ……

.

在 Outlook 工具列 增加『相關訊息』功能

建立『相關訊息』巨集

  1.  工具 - 巨集 - Visual Basic 編輯器  (或 快速鍵 Alt-F11)
  2. 找到左邊的 Microsoft Office Outlook – ThisOutlookSession 或是 插入一個 新模組
  3. 在模組右邊的編輯視窗輸入以下的程式碼
  4. 記得儲存 *.OTM 專案

findMsg 

Sub findMsg()
    Dim oCtl As CommandBarControl
    On Error Resume Next
    Set oCtl = Application.ActiveWindow.CommandBars.FindControl(ID:=2684)
    oCtl.Execute
    Set oCtl = Nothing
End Sub

  • 回到 郵件視窗, 任選一封郵件
  • 工具 - 巨集 - 巨集  (或 快速鍵 Alt-F8)
  • 執行剛才建立的巨集

順利的話, 應該要看到『進階尋找』找出相關郵件

.

將『相關訊息』巨集 加到工具列

findMsg-ToolBar
  • 在 Outlook 2007 的工具列, 按右鍵=> 自訂
  • 找到『巨集』- 剛才建立的巨集名稱
  • 拖曳到工具列的適當位置
    .
  • 在新建立的 巨集按鈕 按右鍵, 修改 名稱, 按鈕圖像, ,是否顯示文字 …… 等
  • .

    增加『自寄件者郵件』功能

    類似的動作, 只要改變 FindControlID, 就可以手動增加『自寄件者郵件』功能, (記得 巨集名稱 不要重複)

    • 相關訊息 …… 2684
    • 自寄件者郵件 …… 2607

    Sub findSender()
        Dim oCtl As CommandBarControl
        On Error Resume Next
        Set oCtl = Application.ActiveWindow.CommandBars.FindControl(ID:=2607)
        oCtl.Execute
        Set oCtl = Nothing
    End Sub

    .

    參考資料

    善用這樣的技巧, 可以增加一些『原本無法加到工具列』的 Outlook 指令到工具列。不過要注意, 其中的 Application.ActiveWindow 在某些場合要改成 Application.ActiveExplorer 或是 Application.ActiveInspector

    參考資料的第一部份, 有更詳細的介紹

    工具列指令 / CommandBars / FindControl

    .

    參考資料的第二部份, 則是關於『進階尋找』, 原本想要利用 VBA 巨集做一些自動化。可惜『進階尋找』既不是 Explorer 也不是 Inspector, 完全找不到可以用 Outlook 巨集來進一步自動化的線索。不過, 倒是還有其他方法來達成自動化, 而且我也實作做勘用的程度, 請期待後續的介紹。

    進階尋找 與 搜尋資料夾

    .

    0 意見:

    發表您的回應

    張貼留言