Macro para enviar emails desde Excel
Nota: En este artículo veremos cómo enviar correos desde Excel a una lista personalidad definiendo un texto, pero si lo que buscas es una herramienta funcional para envío de correos de manea profesional, te recomiendo:
En una artículo anterior vimos cómo enviar la hoja activa de Excel por email usando un formulario propio de Outlook de Office.
En este artículo 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 par informarles el saldo que debe pagar y la fecha de vencimiento de su pago.
Figura 1. Enviar correo a lista de clientes.
Ver video Enviar emails desde Excel
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Para esta macro tendremos un texto prefenido que se enviará a cada cliente y el cuerpo del mail cambiará los datos con relación a cada cliente. Los datos que cambiarán son los relativos a las columnas de la tabla.
Esta macro no usará un formulario de Outlook para hacer los envíos, sino que desde el mismo código le definiremos los parámetros del email que se enviarán.
Los parámetros que se usarán 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 código 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 día [fecha].
El saldo que debe liquidar es [saldo].
Atentamente:
Tarjetas de crédito.
Código vba
Para que el código funcione, dentro del IDE de vba deberemos marcar la referencia de Outlook Object Library. Para marcarla elegimos el menú Herramientas > Referencias.
Figura 2. Elección de la referencia para poder usar Outlook de Office.
Macro: EnviarEmail
Ubicación: Módulo1.
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 día " 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 crédito." ' Set MItem = OutlookApp.CreateItem(olMailItem) With MItem .To = Correo .Subject = Asunto .Body = Msg .Send ' End With ' Next ' End Sub
Anexos
:: Descargar el ejemplo Enviar emails desde Excel – EXCELeINFO.rar