KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Oferta de marzo: 20 % de descuento

¿Cómo enviar automáticamente un mensaje de felicitación a un contacto en Outlook cuando hoy sea su cumpleaños?

AutorXiaoyang Fecha de modificación

A veces, es posible que desee enviar automáticamente un mensaje de felicitación a un contacto cuando hoy sea su cumpleaños en Outlook. Revisar manualmente el cumpleaños de cada contacto y enviar los correos electrónicos de felicitación uno por uno sería una tarea tediosa. En este artículo, le presento un código VBA para resolverlo de forma rápida y sencilla.

Enviar automáticamente un mensaje de felicitación a un contacto según su cumpleaños mediante código VBA en Outlook


Enviar automáticamente un mensaje de felicitación a un contacto según su cumpleaños mediante código VBA en Outlook

Para enviar automáticamente un mensaje de felicitación a un contacto cuando sea su cumpleaños, primero inserte un código VBA y luego configure una tarea periódica que active dicho código.

Los siguientes pasos pueden ayudarle:

1. Inicie Outlook y, a continuación, mantenga pulsadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. En la ventana de Microsoft Visual Basic para Aplicaciones, haga doble clic en ThisOutlookSession del panel Project1 (VbaProject.OTM) para abrir el módulo y, a continuación, copie y pegue el siguiente código en el módulo en blanco.

Código VBA: Envío automático de un mensaje de felicitación a un contacto según su cumpleaños:

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 
la captura de pantalla del paso sobre cómo usar VBA para enviar automáticamente un mensaje de felicitación a un contacto si su cumpleaños es hoy en Outlook 1

3. A continuación, haga clic en Herramientas > Referencias en la ventana de Microsoft Visual Basic para Aplicaciones. En el cuadro de diálogo emergente Referencias - Project1, active las opciones Microsoft Word Object Library y Microsoft Scripting Runtime de la lista de Referencias disponibles, como se muestra en la captura de pantalla:

4. A continuación, haga clic en Aceptar para cerrar el cuadro de diálogo. Ahora debe crear una tarea para activar el código VBA. Vaya al panel de Tareas y haga clic en Tarea para crear una tarea:

(1.) En la línea de Asunto, introduzca el asunto como Enviar correo de felicitación de cumpleaños;

(2.) A continuación, haga clic en Periodicidaden la pestaña Tarea;

(3.) En el cuadro de diálogo Periodicidad de la tarea, seleccione Diariamentey especifique la opción cada 1 día(s)en la sección Patrón de recurrencia;

5. A continuación, haga clic en Aceptar para cerrar el cuadro de diálogo. Vuelva a la ventana de tareas y configure un recordatorio para la tarea periódica tal como se muestra en la siguiente captura de pantalla:

6. A partir de ahora, cada vez que se active el recordatorio, la macro se ejecutará inmediatamente y aparecerá un cuadro de diálogo para recordarte que insertes los mensajes de felicitación de cumpleaños, tal como se muestra en la siguiente captura de pantalla:

7. A continuación, haga clic en el botón Aceptar y se enviará automáticamente un correo de felicitación al contacto cuyo cumpleaños sea hoy.


Las mejores herramientas de productividad para Office

¡Descubra el nuevo Kutools para Outlook con 100+ funciones increíbles!¡Haga 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 correos.

📧Automatización de correo electrónico: Respuesta automática (disponible para POP e IMAP) / Programar el envío de correos electrónicos / CC/BCC automático según reglas al enviar correos / Reenvío automático (regla avanzada) / Añadir saludo automáticamente / Dividir automáticamente los correos con múltiples destinatarios en mensajes individuales...

📨Gestión de correo electrónico: Recupera tus correos electrónicos / Bloquea correos fraudulentos por asunto y otros criterios / Elimina correos electrónicos duplicados / Búsqueda avanzada / Organiza tus carpetas

📁Archivos adjuntos Pro: Guardar en lote / Desvincular en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto comprimir...

🌟Magia de la interfaz: 😊Más emojis bonitos y modernos / Le avisa cuando llegan correos importantes / Minimiza Outlook en lugar de cerrarlo

👍Maravillas con un solo clic: Responder a Todos con Adjuntos / Correos electrónicos antiphishing / 🕘 Mostrar zona horaria: hora actual del remitente...

👩🏼‍🤝‍👩🏻Contactos y calendario: Crear contactos en lote a partir de correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños...

Utilice Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y más de 40 idiomas adicionales.

Desbloquee Kutools para Outlook al instante con un solo clic. ¡No espere más: descárguelo ahora y potencie su eficiencia!

kutools for outlook funciones1kutools for outlook funciones2

🚀 Descarga con un solo clic — Obtenga todos los complementos de Office

Muy recomendado: Kutools for Office (5 en 1)

Un solo clic para descargar cinco instaladoresa la vez —Kutools para Excel, Outlook, Word, PowerPointy Office Tab Pro.¡Haga clic para descargar ahora!

  • Comodidad con un solo clic: Descargue los cinco paquetes de instalación de una sola vez.
  • 🚀Listo para cualquier tarea de Office: Instale los complementos que necesite, justo cuando los necesite.
  • 🧰Incluido: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools for PowerPoint