ENVIAR EMAILS desde Excel con imágenes y links usando código HTML

En este video te diré como usar macros y VBA para enviar emails o correos electrónicos desde Excel, además de que lograremos insertar imágenes y links (hipervínculos) en el cuerpo del correo usando código HTML. Este post está basado en este otro.

Es importante considerar que para enviar los correos usando esta macro, debemos tener una cuenta de correo configurada en Outlook de Office.

Ver Video Enviar emails desde Excel con imágenes

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

En mi canal de Youtube tengo una lista de reproducción dedicada a ejemplos sobre Envío de mails desde Excel. Aquí la puedes consultar.

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 emails desde Excel.

Para esta macro tendremos un texto predefinido 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:

  1. Asunto (del correo).

  2. Correo (el emai del cliente).

  3. Destinatario (el nombre del cliente).

  4. Saldo.

  5. 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 HTML para insertar imágenes

El texto anterior se envía sin formato. Lo que deseamos ahora es añadir un texto formateado con código HTML, el cual vamos a escribir en Visual Studio Code.

Figura 2. Escribir código HTML en Visual Studio Code.

Código HTML

<FONT color="blue">
<P>
    Este correo es enviado desde un archivo del canal EXCELeINFO
</P>
</FONT>
<P>
<B>Suscríbete para recibir los mejores videos de EXCELeINFO</B>
</P>
<a href="https://www.youtube.com/c/SergioAlejandroCampos" target="_BLANK">
    <img src="https://www.exceleinfo.com/wp-content/uploads/2016/10/subscribe-icon-1.png">
</a>

Enviar emails desde Excel con imágenes

El código HTML que te muestro anteriormente se añadirá a la variable strBody y nos permitirá enviar texto formateado para Web. A continuación te muestro cómo se verá uno de los correos usando texto HTML.

Figura 3. Enviar emails desde Excel formateado con HTML insertando imágenes y links.

Código VBA de la macro

Usa el siguiente código VBA para enviar emails desde Excel usando Outlook de Office.

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'
Sub EnviarEmail()
'
' Declaramos variables
'
Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem
Dim CeldaCorreo 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 CeldaCorreo In Range("B11:B13")
        '
        'Asignamos valor a las variables
        '
        
        If CeldaCorreo.EntireRow.Hidden = True Then
        
        Else
        
        Asunto = "Saldo vencido"
        Destinatario = CeldaCorreo.Offset(0, -1).Value
        Correo = CeldaCorreo.Value
        Saldo = Format(CeldaCorreo.Offset(0, 1).Value, "$#,##0")
        FechaVencimiento = Format(CeldaCorreo.Offset(0, 2).Value, "dd/mmm/yyyy")
        strBody = "<p><FONT color='blue'>" & _
        "Este correo es enviado desde un archivo del canal EXCELeINFO" & _
            "</FONT><P><B>Suscríbete para recibir los mejores videos de EXCELeINFO</B></P>" & _
            "<a href='https://www.youtube.com/c/SergioAlejandroCampos' target='_BLANK'>" & _
            "<img src='https://www.exceleinfo.com/wp-content/uploads/2016/10/subscribe-icon-1.png'></a>"
        '
        '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
            .HTMLBody = Msg & strBody
            '.Attachments.Add "C:\Users\usuario\Desktop\doc.pdf"
            .Send
            
            '
        End With
        '
    End If
    Next
    '
End Sub

Descarga el archivo de ejemplo

Enviar emails desde Excel – HTML e imágenes – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

También te podría gustar...