發佈日期:
分類:
如何在Microsoft Outlook中‧為回覆郵件時加入原來附件
01. 同事今天有這樣的要求,但Outlook卻沒有這樣的設定。網上是有『Kutools For Outlook』這個軟件可以做到這個要求,但同事看到那美金39圓的價錢,就已經耍手兼擰頭。當然,回覆郵件時加入原來附件,其實又有何用呢?
02. 在網上尋找一下,原來2014年已經有人會有這樣的要求,這個『網站』也介紹了不同的方法。而我今次會選用免費又最方便使用的方法,就是直接在Outlook建立圖示,一按就可以達成為回覆郵件加入附件。
03. 首先當然是找到有關的『VBA程式碼』。
Sub RunReplyWithAttachments() Dim oReply As Outlook.MailItem Dim oItem As Object Set oItem = GetCurrentItem() If Not oItem Is Nothing Then Set oReply = oItem.Reply CopyAttachments oItem, oReply oReply.Display End If Set oReply = Nothing Set oItem = Nothing End Sub Sub RunReplyAllWithAttachments() Dim oReply As Outlook.MailItem Dim oItem As Object Set oItem = GetCurrentItem() If Not oItem Is Nothing Then Set oReply = oItem.ReplyAll CopyAttachments oItem, oReply oReply.Display End If Set oReply = Nothing Set oItem = Nothing End Sub Function GetCurrentItem() As Object On Error Resume Next Select Case TypeName(Application.ActiveWindow) Case "Explorer" Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1) Case "Inspector" Set GetCurrentItem = Application.ActiveInspector.CurrentItem End Select End Function Sub CopyAttachments(oSourceItem, oTargetItem) Set oFso = CreateObject("Scripting.FileSystemObject") Set fldTemp = oFso.GetSpecialFolder(2) 'Temporary Folder sPath = fldTemp.Path & "\" For Each oAtt In oSourceItem.Attachments sFile = sPath & oAtt.FileName oAtt.SaveAsFile sFile oTargetItem.Attachments.Add sFile, , , oAtt.DisplayName oFso.DeleteFile sFile Next Set fldTemp = Nothing Set oFso = Nothing End Sub
04. 執行『Outlook』,按鍵盤『ALT+F11』,進入『Microsoft Visual Basic For Application』畫面。
05. 展開『專案1(VbaProject.OTM)』。
06. 在『ThisOutlookSession』貼上第3項的程式碼。儲存後關閉視窗。
07. 在Outlook主畫面按『ALT+F』,再選擇『選項』。
08. 左邊選『自動功能區』,右邊在『主要索引標籤』位置打開『首頁(郵件)』、『回覆』。
09. 按下面『新增群組』。
10. 按下面『重新命名』,將名稱改為『回覆含附件』。
11. 在『由此選擇命令』位置,選『巨集』。
12. 之前建立的兩個的巨集名稱便會顯示出來。
13. 將兩個巨集『新增』到『主要索引標籤』位置。
14. 將有關巨集名稱改容易識認的名稱,再按『確定』。
15. Outlook主畫面上方便會看到新增的功能區。
16a. 最後,需要調整巨集的安全性為『所有巨集都顯示通知』。
16b. 每次電腦第一次啟動Outlook時,使用到有關巨集,便會出現以下通知。
17a. 如果想避免每次電腦第一次啟動Outlook時出現的巨集通知。可以利用Office內建的自簽數碼證書服務。
17b. 以Office 2016 x64為例,首先到『C:\Program Files\Microsoft Office\root\Office16』資料夾,執行『SELFCERT.EXE』檔案。
17c. 輸入憑證名稱。
17d. 成功建立憑證。
17e. 按Windows鍵,輸入『certmgr.msc』。
17f. 左邊目錄選『個人』、『憑證』,右邊便會看到剛來建立的憑證。
17g. 進入Outlook,按鍵盤『ALT+F11』,進入『Microsoft Visual Basic For Application』畫面。在上面目錄選『工具』、『數位簽證』。
17h. 在『簽章為』位置按『選擇』。
17i. 程式會自動找到剛才建立的證書。
17j. 完成後會看到憑證名稱。
17k. 關閉Outlook,儲存『VbaProject.OTM』。再次重新啟動Outlook,會出現『Microsoft Outlook安全性注意事項』對話匣,留意下面『信任來自於這個發行者的所有文件』,如接受就會容許執行這個發行者的建立的巨集。
18. 同事反映有些郵件使用巨集沒有反應,檢查下發現當郵件內有嵌入物件(embedded objects),當運行巨集時『oAtt.SaveAsFile sFile』便會出現錯誤。更新下只能把相關物件刪除,但似乎有違設計原意,但『回覆郵件時加入原來附件 (Reply with attachment)』究竟是否應包括嵌入物件,我們再作研究。
發佈留言