Skip to main content

¿Cómo cambiar automáticamente la firma según los destinatarios en Outlook?

Author: Siluvia Last Modified: 2025-06-04

Por defecto, Outlook tiene una función integrada que permite a los usuarios cambiar automáticamente la firma al enviar correos electrónicos a través de diferentes cuentas de correo. Pero más allá de eso, aquí te mostraré un método para cambiar automáticamente la firma basada en diferentes destinatarios en el campo Para en Outlook.

Cambiar la firma según los destinatarios automáticamente con código VBA


Cambiar la firma según los destinatarios automáticamente con código VBA

Por favor, sigue los siguientes pasos para aplicar diferentes firmas a los destinatarios correspondientes mientras envías correos electrónicos en Outlook.

1. Primero, necesitas desactivar la función de firma adjunta automática en Outlook. Haz clic en Archivo > Opciones para abrir la ventana Opciones de Outlook.

2. En la ventana Opciones de Outlook, selecciona Correo en el panel izquierdo, luego haz clic en el botón Firmas en la sección Redactar mensajes. Ver captura de pantalla:

using vba to change signature based on recipients automatically with code

3. En el Firmas y Papelería cuadro de diálogo, ve a la Elegir firma predeterminada sección bajo la Firma de correo electrónico pestaña, selecciona una cuenta de correo en la Cuenta de correo lista desplegable, y luego elige (ninguna) en las Mensajes nuevos y Respuestas/reenvíos listas desplegables. Repite estos pasos hasta que todas las cuentas de correo estén configuradas en (ninguna). Luego haz clic en el Aceptar botón.

using vba to change signature based on recipients automatically with VBA code

Nota: También puedes crear las firmas necesarias en este cuadro de diálogo Firmas y Papelería.

4. Haz clic en el botón Aceptar cuando regrese a la ventana Opciones de Outlook.

5. Presiona las teclas Alt + F11 para abrir la ventana Microsoft Visual Basic para Aplicaciones.

6. En la ventana Microsoft Visual Basic para Aplicaciones, haz doble clic en EstaSesiónDeOutlook en el panel izquierdo para abrir la ventana Código, y copia el siguiente código VBA en la ventana. Ver captura de pantalla:

using vba to change signature based on recipients automatically with VBA code

Código VBA: Cambiar automáticamente la firma según los destinatarios en Outlook

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/08/01
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
Dim xFindStr As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
    If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
        xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
    Else
        xRcpAddress = xRecipient.AddressEntry.Address
    End If
    Select Case xRcpAddress
        Case "Email Address 1"
            xSignatureFile = xSignaturePath & "aaa.htm"
            Exit For
        Case "Email Address 2", "Email Address 3"
            xSignatureFile = xSignaturePath & "bbb.htm"
            Exit For
        Case "Email Address 4"
            xSignatureFile = xSignaturePath & "ccc.htm"
            Exit For
    End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xFindStr = "From: " & xMailItem.Recipients.Item(1).Name & " <" & xRcpAddress & ">"
If VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Then
    xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
    With xDoc.Application.Selection.Find
        .ClearFormatting
        .Text = xFindStr
        .Execute Forward:=True
    End With
    With xDoc.Application.Selection
        .MoveLeft wdCharacter, 2
        .InsertParagraphAfter
        .MoveDown Unit:=wdLine, Count:=1
    End With
Else
    With xDoc.Application.Selection
        .EndKey Unit:=wdStory, Extend:=wdMove
        .InsertParagraphAfter
        .MoveDown Unit:=wdLine, Count:=1
    End With
End If
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub

Notas:

  • 1). En el código VBA, reemplaza "Dirección de correo 1/2/3/4" con las direcciones de correo específicas de los destinatarios.
  • 2). "aaa.htm", "bbb.htm" y "ccc.htm" son las firmas especificadas que enviarás a los destinatarios correspondientes.
  • 3). En este caso, la firma "aaa" será enviada a "Dirección de correo 1", la firma "bbb" será enviada a "Dirección de correo 2" y "Dirección de correo 3", y "Dirección de correo 4" recibirá el correo incrustado con la firma "ccc". Por favor, cámbialos según tus necesidades.
  • 4). Si hay múltiples destinatarios en un correo, el código solo toma en consideración al primer destinatario. En este caso, los demás destinatarios recibirán los correos con la misma firma que el primer destinatario.

7. Luego haz clic en Herramientas > Referencias para ir al cuadro de diálogo Referencias-Proyecto. En el cuadro de diálogo, marca tanto la Biblioteca de objetos de Microsoft Word como la Biblioteca de tiempo de ejecución de scripts de Microsoft, y luego haz clic en el botón Aceptar, ver captura de pantalla:

using vba to change signature based on recipients automatically with VBA code

8. Presiona las teclas Alt + Q para cerrar la ventana Microsoft Visual Basic para Aplicaciones.

A partir de ahora, después de redactar un correo electrónico y presionar el botón Enviar, la firma correspondiente se insertará automáticamente al final del cuerpo del correo según la dirección de correo del destinatario en el campo Para.


Insertar automáticamente la fecha actual como firma al enviar correo en Outlook:

Si deseas insertar una marca de tiempo como firma en el cuerpo del correo mientras creas/respondes/reenvías un nuevo correo en tu Outlook, puedes habilitar Agregar firma de fecha al crear nuevo, responder y reenviar correo opción de Kutools para Outlook para lograrlo. Ver captura de pantalla:
Descarga y pruébalo ahora (30-día de prueba gratuita)

using vba to change signature based on recipients automatically with VBA code


Las mejores herramientas de productividad para Office

Últimas noticias: ¡Kutools para Outlook lanza su versión gratuita!

Descubre la nueva versión GRATUITA de Kutools para Outlook con más de70 funciones increíbles, ¡para que la disfrutes PARA SIEMPRE! ¡Haz clic para descargar ahora!

🤖 Kutools AI : Utiliza tecnología avanzada de IA para gestionar correos electrónicos sin esfuerzo, incluyendo responder, resumir, optimizar, ampliar, traducir y redactar emails.

📧 Automatización de Email: Respuesta automática (Disponible para POP e IMAP) / Programar envío de correos / CC/BCC automático por regla al enviar correo / Reenvío automático (Regla avanzada) / Agregar saludo automáticamente / Dividir automáticamente emails con múltiples destinatarios en mensajes individuales...

📨 Gestión de Email: Recuperar correo electrónico / Bloquear correos fraudulentos por asunto y otros criterios / Eliminar correos electrónicos duplicados / Búsqueda Avanzada / Organizar carpetas...

📁 Adjuntos Pro: Guardar en lote / Desanexar en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto Comprimir...

🌟 Magia en la interfaz: 😊Más emojis bonitos y modernos / Avisos cuando llegan correos importantes / Minimiza Outlook en vez de cerrarlo...

👍 Funciones de un solo clic: Responder a Todos con Adjuntos / Correos electrónicos anti-phishing / 🕘Mostrar la zona horaria del remitente...

👩🏼‍🤝‍👩🏻 Contactos y Calendario: Agregar contactos en lote desde correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños...

Desbloquea al instante Kutools para Outlook con un solo clic. ¡No esperes más, descárgalo ahora y aumenta tu productividad!

kutools for outlook features1 kutools for outlook features2