Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Enviar mail mediante outlook con imagen en el cuerpo del mensaje


.

Anteriormente se han presentado varios post dedicados a mostrar macros que permiten enviar mails con Excel utizando outlook, entre ellos enviar mail con hoja adjunta, enviar mail con hoja de excel en el cuerpo del mensaje, enviar mail con archivo adjunto en pdf, enviar mail adjuntando pdf y archivo de Excel.

Antes de continuar, recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

El ejemplo de macro que presento en el post permite enviar mail con Excel utilizando Outlook con una imagen en el cuerpo del correo; es algo bastante común requerir enviar un mail con una imagen, recomiendo descargar el ejemplo desde el link del final a los fines de poder observar con mayor detalle el funcionamiento de la macro.

El libro de Excel que se descargue contiene una macro que permite enviar mail con Excel mediante Outlook, enviando una imagen en el cuerpo del mensaje, se debe cambiar los mail de la columna B por mails verdaderos, como requisito es necesario tener configurado Outlook como gestor de correo electrónico, ya que utiliza esta herramienta para enviar los correos electrónicos.

La macro recorre toda la columna B hasta la última fila con datos, enviando mail con el mensaje correspondiente que se encuentra en la columna C y la imagen cuya dirección web se encuentra en la columna D.

El código que se encuentra debajo de estos párrafos es el que encontrarás al descargar el ejemplo, se encuentra libre sin restricciones, carga una imagen del sitio http://programarexcel.com y hace referencia este sitio también; tu debes modificar la dirección por la dirección de la imagen que tu requieras, como así también al sitio donde hace referencia.

Considera aportar a los fines de seguir manteniendo el sitio, suscribe al blog para recibir en tu correo todas las actualizaciones, dispones también de un canal de You Tube donde encontrarás explicaciones de macros con mayor detalle.

Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

Código que se inserta en un módulo

Sub SendMailbyOutlookImagen()

On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim OA, OM As Object
Dim NA As Variant
Dim Path, TD, fn, mydoc As String
Dim fila As Integer
Set OA = CreateObject(«Outlook.Application»)

fn = ActiveSheet.Name
Set a = Sheets(fn)
fila = 2
uf = Sheets(fn).Range(«A» & Rows.Count).End(xlUp).Row

Do
Set OM = OA.CreateItem(0)
Nom = a.Cells(fila, «A»)
Dest = a.Cells(fila, «B»)
ST = a.Cells(fila, «C»)
Pathimag = a.Cells(fila, «D»)

With OM
    .To = Dest 
    .CC = «»
    .BCC = «»
    .Subject = ST & » » & Nom
    .BodyFormat = olFormatRichText
   .Body = «Estimado, en el archivo adjunto se encuentra el reporte de » & fn & » al » & TD & » confirmar recepción»
    .HTMLBody = «<p><font size=’6′ face=’arial’ color=’red’><i>Hola » & Nom & «<br></font></p><br><p align=’CENTER’><font size=’5′ face=’COMIC SANS’ color=’RED’>Mira mi perfil</p><br><br></font><p align=’CENTER’><a href=’http://programarexcel.com’><img src='» & Pathimag & «‘ width=450 height=412 border=0></a></a><br><br><br><p align=’left’>Hasta la vista baby <br><br/> _<p><p align=’left’><br>Tomy Lee<br>https://macrosenexcel.com/</p>»
    .Send
End With

fila = fila + 1
Set OM = Nothing
Loop While fila <= uf

MsgBox «Los mails se enviaron con éxito», vbInformation, «AVISO»

Set OA = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends