Skip to main content

Kutools per Office — Una Suite. Cinque Strumenti. Ottieni di Più.

Come inviare automaticamente un messaggio di auguri a un contatto se il suo compleanno è oggi in Outlook?

Author Xiaoyang Last modified

A volte, potresti voler inviare automaticamente un messaggio di auguri al contatto quando il suo compleanno è oggi in Outlook. Sarebbe un compito noioso controllare il compleanno di ogni contatto uno per uno e inviare manualmente le email di auguri. In questo articolo, introdurrò un codice VBA per risolvere rapidamente e facilmente il problema.

Invia automaticamente un messaggio di auguri a un contatto in base al suo compleanno con il codice VBA in Outlook


Invia automaticamente un messaggio di auguri a un contatto in base al suo compleanno con il codice VBA in Outlook

Per inviare automaticamente un messaggio di auguri a un contatto se il suo compleanno è oggi, inserisci prima un codice VBA, poi devi creare un'attività ricorrente per attivare il codice.

I seguenti passaggi potrebbero esserti utili:

1. Avvia Outlook, quindi tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.

2. Nella finestra Microsoft Visual Basic for Applications, fai doppio clic su ThisOutlookSession nel riquadro Project1(VbaProject.OTM) per aprire la modalità, quindi copia e incolla il seguente codice nel modulo vuoto.

Codice VBA: Invio automatico di un messaggio di auguri a un contatto in base al compleanno:

Private Sub Application_Reminder(ByVal Item As Object)
Dim xTempMail As MailItem
Dim xFilePath As String
Dim xItems As Outlook.Items
Dim xItem As Object
Dim xContactItem As Outlook.ContactItem
Dim xTodayDate As String
Dim xBirthdayDate As String
Dim xGreetingMail As Outlook.MailItem
Dim xWordDoc As Word.Document
Dim xGreetings As String
Dim xBool As Boolean
xFilePath = CreateObject("shell.Application").NameSpace(5).self.Path & "\UserTemplates"
Set xFSO = CreateObject("Scripting.FileSystemObject")
If xFSO.FolderExists(xFilePath) = False Then
    MkDir xFilePath
End If
If IsFileExists(xFilePath & "\Birthday Greeting Mail.oft") = False Then
    Set xTempMail = Outlook.CreateItem(olMailItem)
    xTempMail.SaveAs xFilePath & "\Birthday Greeting Mail.oft", olTemplate
    xTempMail.Close olDiscard
End If
If (TypeOf Item Is TaskItem) And (Item.Subject = "Send Birthday Greeting Mail") Then
xGreetings = "Happy Birthday!"
           xGreetings = InputBox("Input birthday greetings", "Kutools for Outlook", xGreetings)
   xTodayDate = Month(Date) & "-" & Day(Date)
   Set xItems = Outlook.Application.Session.GetDefaultFolder(olFolderContacts).Items
   For Each xItem In xItems
       If Not (TypeOf xItem Is ContactItem) Then Exit Sub
       Set xContactItem = xItem
       xBirthdayDate = Month(xContactItem.Birthday) & "-" & Day(xContactItem.Birthday)
       If xBirthdayDate = xTodayDate Then
           Set xGreetingMail = Outlook.Application.CreateItemFromTemplate(xFilePath & "\Birthday Greeting Mail.oft")
           Set xWordDoc = xGreetingMail.GetInspector.WordEditor
           
           xWordDoc.Range.InsertBefore "Dear " & xContactItem.LastName & Chr(10) & xGreetings & Chr(10) & Chr(10)
           With xGreetingMail
                .Recipients.Add (xContactItem.Email1Address)
                .Subject = "Happy Birthday!"
                .Display
                .Close (olSave)
                .Send
          End With
       End If
   Next
End If
End Sub
Function IsFileExists(ByVal FileName As String) As Boolean
Dim xFileSystem As Object
Set xFileSystem = CreateObject("Scripting.FileSystemObject")
If xFileSystem.FileExists(FileName) = True Then
    IsFileExists = True
Else
    IsFileExists = False
End If
End Function 
the screenshot of step about using vba to send a greeting message to a contact automatically if his birthday is today in Outlook 1

3. Quindi fai clic su Strumenti > Riferimenti nella finestra Microsoft Visual Basic for Applications, nella finestra di dialogo Riferimenti-Project1 che appare, seleziona le opzioni Microsoft Word Object Library e Microsoft Scripting Runtime dall'elenco dei Riferimenti disponibili, vedi screenshot:

4. Quindi fai clic su OK per chiudere la finestra di dialogo, ora dovresti creare un'attività per attivare il codice VBA. Vai al riquadro Attività, fai clic su Nuova attività per creare un'attività:

(1.) Nella riga Oggetto, inserisci come Oggetto Invia Email di Auguri di Compleanno;

(2.) Quindi fai clic su Ricorrenza sotto la scheda Attività;

(3.) Nella finestra di dialogo Ricorrenza Attività, seleziona Giornaliero e specifica l'opzione ogni 1 giorno dalla sezione Modello di ricorrenza;

5. Quindi fai clic su OK per chiudere la finestra di dialogo, torna alla finestra dell'attività, imposta un promemoria per l'attività ricorrente come mostrato nello screenshot seguente:

6. Da adesso in poi, quando il promemoria si attiva, la macro verrà immediatamente attivata. Apparirà una finestra di dialogo per ricordarti di inserire gli auguri di compleanno come mostrato nello screenshot seguente:

7. Quindi fai clic sul pulsante OK, un'email di auguri verrà inviata automaticamente al contatto il cui compleanno è oggi.


I migliori strumenti per la produttività in Office

Ultime notizie: Kutools per Outlook lancia la versione gratuita!

Scopri il nuovissimo Kutools per Outlook con oltre100 funzionalità straordinarie! Clicca per scaricare ora!

🤖 Kutools AI : Utilizza una tecnologia AI avanzata per gestire le email senza sforzo, inclusa la risposta, la sintesi, l’ottimizzazione, l’estensione, la traduzione e la composizione dei messaggi.

📧 Automazione Email: Risposta automatica (disponibile per POP e IMAP)  /  Programma invio Email  /  CC/BCC automatico tramite Regola durante l’invio delle Email  /  Inoltro automatico (Regola avanzata)   /  Aggiungi Saluto automaticamente   /  Dividi automaticamente Email multi-destinatario in messaggi singoli ...

📨 Gestione Email: Richiama Email  /  Blocca Email fraudulent (tramite Oggetto e altri parametri)  /  Elimina Email Duplicato  /  Ricerca Avanzata  /  Organizza cartelle ...

📁 Allegati ProSalva in Batch  /  Distacca in Batch  /  Comprimi in Batch  /  Salvataggio automatico   /  Distacca automaticamente  /  Auto Comprimi ...

🌟 Magia Interfaccia: 😊Più emoji belle e divertenti   /  Notifiche per le email importanti in arrivo  /  Riduci Outlook al posto di chiuderlo ...

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

👩🏼‍🤝‍👩🏻 Contatti & Calendario: Aggiungi in Batch contatti dalle Email selezionate  /  Dividi un Gruppo di Contatti in Gruppi singoli  /  Rimuovi promemoria di compleanno ...

Utilizza Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre!

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

kutools for outlook features1 kutools for outlook features2

🚀 Download con un solo clic — Ottieni tutti gli Add-in per Office

Consigliato: Kutools per Office (5-in-1)

Un solo clic per scaricare cinque installatori contemporaneamente — Kutools per Excel, Outlook, Word, PowerPoint e Office Tab Pro. Clicca per scaricare ora!

  • Comodità con un solo clic: scarica tutti e cinque i pacchetti di installazione in una sola azione.
  • 🚀 Pronto per qualsiasi attività Office: installa i componenti aggiuntivi necessari, quando ti servono.
  • 🧰 Inclusi: Kutools per Excel / Kutools per Outlook / Kutools per Word / Office Tab Pro / Kutools per PowerPoint