Skip to main content

Come cambiare automaticamente la firma in base ai destinatari in Outlook?

Author: Siluvia Last Modified: 2025-05-29

Per impostazione predefinita, Outlook ha una funzione integrata che consente agli utenti di cambiare automaticamente la firma durante l'invio di email attraverso diversi account di posta. Ma oltre a ciò, qui vi mostrerò un metodo per cambiare automaticamente la firma in base ai diversi destinatari nel campo A in Outlook.

Cambia la firma in base ai destinatari automaticamente con il codice VBA


Cambia la firma in base ai destinatari automaticamente con il codice VBA

Seguite i seguenti passaggi per applicare firme diverse ai rispettivi destinatari durante l'invio di email in Outlook.

1. Prima di tutto, è necessario disabilitare la funzione di firma auto-allegata in Outlook. Cliccate su File > Opzioni per aprire la finestra Opzioni di Outlook.

2. Nella finestra Opzioni di Outlook, selezionate Posta nel riquadro sinistro, quindi cliccate sul pulsante Firme nella sezione Scrivi messaggi. Vedere screenshot:

using vba to change signature based on recipients automatically with code

3. Nella finestra di dialogo Firme e carta intestata, andate alla sezione Scegli firma predefinita sotto la scheda Firma email, selezionate un account email nell'elenco a discesa Account email, e poi scegliete (nessuna) dagli elenchi a discesa Nuovi messaggi e Risposte/inoltro. Ripetete questi passaggi fino a quando tutti gli account email sono impostati su (nessuna). Poi cliccate sul pulsante OK.

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

Nota: Potete anche creare le firme necessarie in questa finestra di dialogo Firme e carta intestata.

4. Cliccate sul pulsante OK quando ritorna alla finestra Opzioni di Outlook.

5. Premete i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.

6. Nella finestra Microsoft Visual Basic for Applications, fate doppio clic su ThisOutlookSession nel riquadro sinistro per aprire la finestra del Codice, e copiate il seguente codice VBA nella finestra. Vedere screenshot:

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

Codice VBA: Cambia automaticamente la firma in base ai destinatari in 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

Note:

  • 1). Nel codice VBA, sostituite "Indirizzo Email 1/2/3/4" con gli indirizzi email specifici dei destinatari.
  • 2). "aaa.htm", "bbb.htm" e "ccc.htm" sono le firme specifiche che invierete ai rispettivi destinatari.
  • 3). In questo caso, la firma "aaa" verrà inviata all'Indirizzo Email 1", la firma "bbb" verrà inviata all'Indirizzo Email 2" e all'Indirizzo Email 3", e l'Indirizzo Email 4" riceverà l'email con incorporata la firma "ccc". Modificatele in base alle vostre esigenze.
  • 4). Se ci sono più destinatari in un'email, il codice prende in considerazione solo il primo destinatario. In questo caso, gli altri destinatari riceveranno le email con la stessa firma del primo destinatario.

7. Quindi cliccate su Strumenti > Riferimenti per accedere alla finestra di dialogo Riferimenti-Progetto. Nella finestra di dialogo, spuntate sia la libreria Microsoft Word Object Library che l'opzione Microsoft Scripting Runtime, e poi cliccate sul pulsante OK, vedere screenshot:

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

8. Premete i tasti Alt + Q per chiudere la finestra Microsoft Visual Basic for Applications.

Da ora in poi, dopo aver composto un'email e premuto il pulsante Invia, la firma corrispondente verrà automaticamente inserita alla fine del corpo dell'email in base all'indirizzo email del destinatario nel campo A.


Inserimento Automatico della Data Corrente come Firma Durante l'Invio di Email in Outlook:

Se desiderate inserire un timestamp come firma nel corpo dell'email durante la creazione/risposta/inoltro di nuove email in Outlook, potete abilitare Aggiungi firma data alla creazione di nuove email, risposte e inoltro l'opzione di Kutools per Outlook per realizzarlo. Vedere screenshot:
Scarica e prova subito (30-giorni di prova gratuita)

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


I migliori strumenti per la produttività in Office

Ultime novità: Kutools per Outlook lancia la versione gratuita!

Scopri la nuovissima versione GRATUITA di Kutools per Outlook con oltre70 funzionalità straordinarie, da utilizzare PER SEMPRE! Clicca per scaricarla subito!

🤖 Kutools AI : Sfrutta una tecnologia AI avanzata per gestire le email senza sforzo, tra cui rispondere, riassumere, ottimizzare, estendere, tradurre e scrivere email.

📧 Automazione Email: Risposta automatica (disponibile per POP e IMAP) / Programma invio email / CC/BCC automatico tramite regola durante l'invio / Inoltro automatico (Regola avanzata) / Aggiungi saluto automaticamente / Suddividi automaticamente le email con più destinatari in messaggi individuali...

📨 Gestione Email: Richiama Email / Blocca email di phishing per oggetto e altri criteri / Elimina email duplicate / Ricerca Avanzata / Organizza cartelle...

📁 Allegati Pro: Salva in blocco / Distacca in blocco / Comprimi in blocco / Salvataggio automatico / Distacca automaticamente / Auto Comprimi...

🌟 Magia dell'interfaccia: 😊Più emoji belle e originali / Notifiche per email importanti / Riduci Outlook a icona invece di chiuderlo...

👍 Funzioni rapide: Rispondi a Tutti con Allegati / Email anti-phishing / 🕘Mostra il fuso orario del mittente...

👩🏼‍🤝‍👩🏻 Contatti & Calendario: Aggiungi in blocco contatti dalle email selezionate / Dividi un gruppo di contatti in gruppi individuali / Rimuovi promemoria di compleanno...

Sblocca subito Kutools per Outlook con un solo clic. Non aspettare, scaricalo ora e aumenta la tua efficienza!

kutools for outlook features1 kutools for outlook features2