
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



