You are on page 1of 4

Macro para enviar emails desde Excel

BY SERGIO ALEJANDRO CAMPOS 7 APRIL, 2015

Nota: En este artculo veremos cmo enviar correos desde Excel a una lista personalidad
definiendo un texto, pero si lo que buscas es una herramienta funcional para envo de correos de
manea profesional, te recomiendo:

En una artculo anterior vimos cmo enviar la hoja activa de Excel por email usando un formulario
propio de Outlook de Office.

En este artculo enviaremos emails a una lista de correos que tendremos en una tabla. La tabla
contiene NOMBRE, EMAIL, SALDO y FECHA VENCIMIENTO.

Vamos a simular que le enviamos un correo a los clientes para informarles el saldo que debe pagar
y la fecha de vencimiento de su pago.

image

Figura 1. Enviar correo a lista de clientes.

Para esta macro tendremos un texto prefenido que se enviar a cada cliente y el cuerpo del mail
cambiar los datos con relacin a cada cliente. Los datos que cambiarn son los relativos a las
columnas de la tabla.

Esta macro no usar un formulario de Outlook para hacer los envos, sino que desde el mismo
cdigo le definiremos los parmetros del email que se enviarn.

Los parmetros que se usarn son:

Asunto (del correo).

Correo (el emai del cliente).

Destinatario (el nombre del cliente).


Saldo.

Fecha de vencimiento.

El texto que se enviar lo definimos dentro del cdigo vba y va concatenado con los valores de
cada cliente en la tabla. El texto que se enviar es el siguiente:

Apreciable [nombre]

Queremos informarle que su fecha de pago venci el da [fecha].

El saldo que debe liquidar es [saldo].

Atentamente:

Tarjetas de crdito.

Cdigo vba

Para que el cdigo funcione, dentro del IDE de vba deberemos marcar la referencia de Outlook
Object Library. Para marcarla elegimos el men Herramientas > Referencias.

image

Figura 2. Eleccin de la referencia para poder usar Outlook de Office.

Macro: EnviarEmail

Ubicacin: Mdulo1.
Sub EnviarEmail()

'

' Declaramos variables

'

Dim OutlookApp As Outlook.Application

Dim MItem As Outlook.MailItem

Dim cell As Range

Dim Asunto As String

Dim Correo As String

Dim Destinatario As String

Dim Saldo As String

Dim Msg As String

'

Set OutlookApp = New Outlook.Application

'

'Recorremos la columna EMAIL

'

For Each cell In Range("B11:B23")

'

'Asignamos valor a las variables

'

Asunto = "Saldo vencido"

Destinatario = cell.Offset(0, -1).Value

Correo = cell.Value

Saldo = Format(cell.Offset(0, 1).Value, "$#,##0")

FechaVencimiento = Format(cell.Offset(0, 2).Value, "dd/mmm/yyyy")


'

'Cuerpo del mensaje

'

Msg = "Apreciable " & Destinatario & vbNewLine & vbNewLine

Msg = Msg & "Queremos informarle que su fecha de pago venci el da "

Msg = Msg & FechaVencimiento & "." & vbNewLine & vbNewLine

Msg = Msg & "El saldo que debe liquidar es "

Msg = Msg & Saldo & vbNewLine & vbNewLine

Msg = Msg & "Atentamente:" & vbNewLine

Msg = Msg & "Tarjetas de crdito."

'

Set MItem = OutlookApp.CreateItem(olMailItem)

With MItem

.To = Correo

.Subject = Asunto

.Body = Msg

.Send

'

End With

'

Next

'

End Sub

You might also like