En esta ocasión se va a usar una macro escrita en Visual Basic que permita el envío de correos desde Excel. Esto viene bien para envío de correos masivos personalizados a través de Excel.
Antes de empezar a programar la macro, es necesario crear una tabla con las siguientes columnas: Email, Nombre, Apellidos, Asunto y Mensaje

Para empezar a programar la macro, necesitamos incluir un botón, para que al pulsarlo envíe automáticamente correos a los destinatarios de la lista. Para insertar el botón, seleccionamos la pestaña Programador y dentro buscamos la opción: Insertar->Botón

Una vez insertado en la hoja, es necesario asociar la acción del botón al procedimiento que llevará a cabo la acción de enviar correos desde Excel.

A continuación, aparece el editor de visual basic que permite escribir el código implicado en el envío de correos masivos.
Sub sendEmail()
Dim i As Integer
Dim pagina As Worksheet
Set pagina = ActiveWorkbook.Worksheets("Hoja1")
Dim columnaEmail As Range
Set columnaEmail = Range("a2")
columnaEmail.Select
columnaEmail.Activate
Dim objOutlook As Object
Dim correo As Object
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
On Error Resume Next
Set objOutlook = GetObject("", "Outlook.Application")
Err.Clear
If outapp Is Nothing Then Set outapp = CreateObject("Outlook.Application")
outapp.Visible = True
i = 2
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(i - 2, 0).Select
'Crear el correo y mostrarlo
Set correo = objOutlook.CreateItem(olMailItem)
With correo
.To = pagina.Cells(i, 1).Value
.Subject = pagina.Cells(i, 4).Value
.HTMLBody = pagina.Cells(i, 5).Value
.Send
End With
i = i + 1
Loop
End Sub
Las líneas 3 y 4 definen la hoja de cálculo en uso, es decir, donde se encuentra la lista de correos que se usan para el envío masivo.
De la línea 6 a la línea 9 se ejecuta el código vba que coloca el foco en la celda desde la que vamos a empezar a enviar los correos.
De la línea 12 a la 24, ejecutamos el código que configura el objeto del correo. En nuestro caso, la aplicación cliente es el Outlook.
Por último, usando un bucle que compruebe si el correo está vacío, movemos la selección a la celda siguiente y componemos el correo con el resto de datos de la lista.