¿Cómo enviar un correo personalizado por cada fila de una tabla en Excel?

Enviar un correo personalizado por cada fila de una tabla en Excel es una tarea comúnmente utilizada para personalizar mensajes masivos. Esto se puede lograr mediante Microsoft Outlook y VBA (Visual Basic for Applications). Aquí tienes una guía paso a paso sobre cómo hacerlo:

   Sub EnviarCorreos()
       Dim OutlookApp As Object
       Dim Correo As Object
       Dim i As Integer
       Dim hoja As Worksheet
       
       ' Cambia "Hoja1" por el nombre de tu hoja de cálculo
       Set hoja = ThisWorkbook.Sheets("Hoja1")
       
       ' Establecer la aplicación Outlook
       Set OutlookApp = CreateObject("Outlook.Application")
       
       ' Recorrer cada fila de la tabla
       For i = 2 To hoja.Cells(Rows.Count, 1).End(xlUp).Row ' Asumiendo que los encabezados están en la fila 1
           
           ' Crear un nuevo correo
           Set Correo = OutlookApp.CreateItem(0)
           
           ' Configurar los campos del correo
           With Correo
               ' Cambia los índices de columnas según tu tabla
               .To = hoja.Cells(i, 1).Value  ' Correo del destinatario
               .Subject = hoja.Cells(i, 2).Value  ' Asunto del correo
               .Body = "Hola " & hoja.Cells(i, 3).Value & "," & vbCrLf & vbCrLf & hoja.Cells(i, 4).Value  ' Cuerpo del mensaje
               ' Puedes usar .HTMLBody si prefieres enviar correos en formato HTML
               
               ' .Send para enviar directamente o .Display para mostrar antes de enviar
               .Send
           End With
           
           ' Liberar la variable del correo
           Set Correo = Nothing
           
       Next i
       
       ' Liberar la variable de la aplicación Outlook
       Set OutlookApp = Nothing
       
       ' Confirmación final
       MsgBox "Correos enviados exitosamente!"
   End Sub
  • Preparar la Tabla en Excel:
    • Organiza tus datos en Excel en una tabla, donde cada fila representa un destinatario. Por ejemplo, puedes tener columnas para el nombre, correo electrónico, asunto y cuerpo del mensaje.
  • Abrir el Editor de VBA:
    • Presiona `ALT + F11` para abrir el Editor de VBA en Excel.
  • Insertar un Módulo Nuevo:
    • En el Editor de VBA, ve a `Insertar > Módulo` para crear un nuevo módulo.
  • Escribir el Código VBA:
    • Escribe el siguiente código VBA en el módulo. Asegúrate de ajustar los nombres de las columnas y el rango al que se refiere el código:
  • Ajustar el Código:
    • Cambia los índices de las columnas en el código para que correspondan a tu propia tabla. Por ejemplo, si la columna de correo está en la columna B, usa `hoja.Cells(i, 2).Value`.
    • Si tienes encabezados en la fila 1, asegúrate de que el bucle `For` comience en la fila 2.
  • Ejecutar el Macro:
    • Presiona `F5` o ve al menú `Ejecutar > Ejecutar Sub/UserForm` para ejecutar el macro.
  • Permisos de Seguridad:
    • Si es la primera vez que utilizas macros y Outlook juntos, puede que debas ajustar la configuración de seguridad tanto en Excel como en Outlook. Asegúrate de que las macros estén habilitadas y concédeles permiso para acceder al correo electrónico.

Este proceso te permitirá enviar correos personalizados para cada fila en tu tabla de Excel. Asegúrate de revisar los mensajes antes de enviarlos definitivamente para evitar errores.

Conoce nuestros servicios

Conoce nuestra tienda

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Deja un comentario