2014-02-20 61 views

回答

2

我已經有同樣的問題,到目前爲止還沒有找到答案。作爲一個很好的解決方法,我已成功使用此處提供的解決方案:https://superuser.com/a/228633/74819。最後,您會在工具欄上看到一個按鈕,讓您可以使用自定義收件人地址和預先定義的正文文本(包括簽名)創建新郵件。

現在我實際上發現這種方法比我所尋找的更好,因爲它更容易預測。如果簽名(以及消息正文)基於收件人列表發生更改,您將無法控制文本。此外,使用您自己的工具,您可以設置的不僅僅是簽名。

1

你正在尋找一個設置來做到這一點,或者你是否願意使用宏?如果您願意使用宏,請參閱下文並回答問題。

Public WithEvents goInspectors As Outlook.Inspectors 
Public WithEvents myMailItem As Outlook.MailItem 

Private Sub Application_Startup() 
    Initialize_Inspector 
End Sub 

Private Sub Initialize_Inspector() 
    Set goInspectors = Outlook.Application.Inspectors 
End Sub 

Private Sub goInspectors_NewInspector(ByVal Inspector As Inspector) 
    If Inspector.currentItem.Class = olMail Then 
     Set myMailItem = Inspector.currentItem 
    End If 
End Sub 

Private Sub myMailItem_PropertyChange(ByVal Name As String) 

    'The variable below should be modified for your situation. 
    'If you are in an Exchange environment, then you can use "last name, firstname"(caps-sensitive). 
    'If the the recipient is not in Outlook's address list, use "[email protected]" 
    customSignatureFor = "Lastname, Firstname" 

    'Use vbCrLf to account for enter/returns 
    oldSignature = "Respectfully," & vbCrLf & vbCrLf & "Phillip" 
    newSignature = "v/r," & vbcrlf & "Phil" 

    If Name = "To" Then 
     For i = 1 To myMailItem.Recipients.count 
      If InStr(myMailItem.Recipients(i), customSignatureFor) > 0 Then 
       tempstring = Replace(myMailItem.Body, oldSignature, newSignature) 
       myMailItem.Body = tempstring 
      End If 
     Next 
    End If 
    End Sub 
+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – abhas

+0

@abhas更新我的回覆以更好地回答問題。 – phillip3196772

+0

@ phillip3196772 - 謝謝你,但是當我複製並粘貼到一個空白宏,我得到一個編譯器的錯誤信息 - 它說:「只在對象模塊有效」和前兩行(即公共)在紅。任何想法我做錯了什麼? –

相關問題