Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

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

Author Xiaoyang Last modified

A veces, puede que desee enviar un mensaje de felicitación automáticamente al contacto cuando su cumpleaños sea hoy en Outlook. Sería una tarea tediosa si tiene que verificar el cumpleaños de cada contacto uno por uno y enviar los correos electrónicos de felicitación manualmente. En este artículo, presentaré un código VBA para resolverlo de manera rápida y sencilla.

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


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

Para enviar un mensaje de felicitación automáticamente a un contacto si su cumpleaños es hoy, primero inserte un código VBA, luego deberá crear una tarea recurrente para activar el código.

Los siguientes pasos pueden ayudarle:

1. Inicie Outlook, y luego mantenga presionadas 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 desde el panel Project1(VbaProject.OTM) para abrir el módulo, y luego 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 basado en 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 
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. Luego haga clic en Herramientas > Referencias en la ventana de Microsoft Visual Basic para Aplicaciones, en el cuadro de diálogo emergente Referencias-Proyecto1, marque las opciones Microsoft Word Object Library y Microsoft Scripting Runtime de la lista de referencias disponibles, vea la captura de pantalla:

4. Luego haga clic en Aceptar para cerrar el cuadro de diálogo, ahora debe crear una tarea para activar el código VBA. Por favor, vaya al panel Tareas, haga clic en Nueva Tarea para crear una tarea:

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

(2.) Luego haga clic en Recurrencia bajo la pestaña Tarea;

(3.) En el cuadro de diálogo Recurrencia de la Tarea, seleccione Diario y especifique la opción cada 1 día(s) de la sección Patrón de recurrencia;

5. Luego haga clic en Aceptar para cerrar el cuadro de diálogo, regrese a la ventana de tareas, configure una alerta para la tarea recurrente como se muestra en la siguiente captura de pantalla:

6. A partir de ahora, cuando la alerta le avise, la macro se activará inmediatamente. Aparecerá un cuadro de diálogo para recordarle insertar las felicitaciones de cumpleaños como se muestra en la siguiente captura de pantalla:

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


Las mejores herramientas de productividad para Office

Noticia de última hora: ¡Kutools para Outlook lanza su versión gratuita!

¡Descubre el nuevo Kutools para Outlook con más de100 increíbles funciones! Haz clic para descargar ahora.

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

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

📨 Gestión de correo electrónico: Recuperar correo electrónico / Bloquear correos fraudulentos por asunto y otros filtros / Eliminar 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 emails importantes / Minimizar Outlook en vez de cerrar...

👍 Funciones en un clic: Responder a Todos con Adjuntos / Correos antiphishing / 🕘Mostrar la zona horaria del remitente...

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

Utiliza Kutools en tu idioma preferido — disponible en Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales.

Activa Kutools para Outlook al instante con un solo clic. No esperes más, descarga ahora y maximiza tu productividad.

kutools for outlook features1 kutools for outlook features2

🚀 Descarga con un solo clic — Consigue todos los complementos para Office

Muy recomendado: Kutools para Office (5 en1)

Descarga los cinco instaladores a la vez con solo un clic — Kutools para Excel, Outlook, Word, PowerPoint y Office Tab Pro. Haz clic para descargar ahora.

  • Comodidad en un solo clic: Descarga los cinco paquetes de instalación en una sola acción.
  • 🚀 Listo para cualquier tarea en Office: Instala los complementos que necesites cuando los necesites.
  • 🧰 Incluye: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools para PowerPoint