跳至主要内容

如何在Outlook中为回复和转发设置不同的签名?

Author: Xiaoyang Last Modified: 2025-05-07

通常情况下,您可以在Outlook中为不同帐户设置不同的签名,但您是否尝试过为回复和转发应用不同的签名呢?这意味着,当您回复邮件时插入签名1,而转发邮件时则应用签名2。那么,如何在Outlook中实现这一操作呢?

使用VBA代码为回复和转发设置不同的签名


使用VBA代码为回复和转发设置不同的签名

以下VBA代码可以帮助您为回复和转发设置不同的签名,请按照以下步骤逐一操作:

1. 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

2. 然后点击 插入 > 模块,将以下代码复制并粘贴到打开的空白模块中,如下截图所示:

VBA代码:为回复和转发设置不同的签名

Public WithEvents GExplorer As Outlook.Explorer
Public WithEvents GMail As Outlook.MailItem
Public GFSO As Scripting.FileSystemObject
Public GTextStream As Scripting.TextStream
Public GText As String
Private Sub Application_Startup()
    Set GExplorer = Outlook.Application.ActiveExplorer
    Set GFSO = New Scripting.FileSystemObject
End Sub
Private Sub GExplorer_SelectionChange()
    Dim xItem As Object
    On Error Resume Next
    Set xItem = GExplorer.Selection.Item(1)
    If xItem.Class <> olMail Then Exit Sub
    Set GMail = xItem
End Sub
Private Sub GMail_Reply(ByVal Response As Object, Cancel As Boolean)
    InsertSignature Response, "Signature1.htm"   'change this signature name for replies
End Sub
Private Sub GMail_Forward(ByVal Forward As Object, Cancel As Boolean)
    InsertSignature Forward, " Signature2.htm"    'change this signature name for forwards
End Sub
Private Sub InsertSignature(Item As Object, SignName As String)
    Dim xSignatureFile As String
    Dim xMailItem As Outlook.MailItem
    xSignatureFile = CreateObject("WScript.Shell").SpecialFolders(5)
    xSignatureFile = xSignatureFile & "\Microsoft\Signatures\" & SignName
    Set GTextStream = GFSO.OpenTextFile(xSignatureFile)
    GText = ""
    GText = GTextStream.ReadAll
    If Item.Class <> olMail Then Exit Sub
    Set xMailItem = Item
    With xMailItem
        .Display
        .HTMLBody = .HTMLBody & "<br><br>" & GText
    End With
End Sub

注意:在上述代码中,Signature1Signature2 是您希望用于回复和转发的两个签名名称。请根据需要更改这些名称。

doc sig forwar reply 1

3. 仍然在 Microsoft Visual Basic for Applications 窗口中,点击 工具 > 引用 打开“引用 - Project1”对话框,并从“可用的引用”列表框中勾选 Microsoft Scripting Runtime 选项,如下截图所示:

doc sig forwar reply 2

4. 然后点击 确定 关闭对话框,从现在开始,当您回复邮件时,会立即插入 Signature1,如下截图所示:

doc sig forwar reply 3

而当您转发邮件时,会插入 Signature2,如下截图所示:

doc sig forwar reply 4