Come inviare automaticamente un messaggio di auguri a un contatto se il suo compleanno è oggi in Outlook?
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
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 
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 novità: Kutools per Outlook lancia la versione gratuita!
Scopri il nuovo Kutools per Outlook con oltre100 funzionalità incredibili! Clicca per scaricare ora!
📧 Automazione email: Risposta automatica (disponibile per POP e IMAP) / Programmazione invio email / CC/BCC automatico tramite regola durante l’invio dell’email / Inoltro automatico (Regola avanzata) / Aggiungi saluto automaticamente / Suddivisione automatica delle email con più destinatari in email individuali ...
📨 Gestione email: Richiama Email / Blocca email di truffa tramite Oggetto e altro / Elimina Email duplicate / Ricerca Avanzata / Organizza cartelle ...
📁 Allegati Pro: Salvataggio in batch / Distacco in batch / Compressione in batch / Salvataggio automatico / Distacca automaticamente / Auto Comprimi ...
🌟 Magia dell’interfaccia: 😊Più emoji belle e simpatiche / Ti avvisa quando arrivano email importanti / Minimizza Outlook invece di chiuderlo ...
👍 Meraviglie con un clic: Rispondi a Tutti con Allegati / Email Anti-phishing / 🕘Mostra il fuso orario del mittente ...
👩🏼🤝👩🏻 Contatti e Calendario: Aggiunta massiva dei contatti dalle email selezionate / Dividi un Gruppo di Contatti in gruppi individuali / Rimuovi promemoria di compleanno ...
Usa Kutools nella lingua che preferisci: supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre lingue!