Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Macro para insertar imagen en correo

| 3 comentarios

En esta macro se elabora una serie de instrucciones que tiene como finalidad enviar una gráfica modificada en una hoja, de manera automática a un destinatario deseado vía mail Outlook.  Para realizar esta macro se tienen que realizar los siguientes pasos: 

Definir las variables 

Las variables tipo string estarían definidas por el cuerpo del correo electrónico, en este caso sería el saludo, el cuerpo con la imagen, y la despedida el correo.  La otra variable a definir seria la variable MailItem que especifica que se trabajara con un formato correspondiente a un correo electrónico. 

enviar gráfico por correo

Guardar la imagen, es decir el gráfico a enviar

Las imágenes en vba están definidas como se ve en el código:  como un chart object y se exporta especificando la dirección de la imagen.

enviar gráfico por correo

Crear el cuerpo del correo adjuntando la imagen 

El correo tiene tres partes: el saludo, el cuerpo y las gracias. 

Como se observa casi todo se encuentra entre comillas debido a que la estructura de la orden que se manda no se encuentra en el lenguaje de visual basic sino en otro lenguaje html, por esa razón el programa no reconocería estos comandos.

insertar imagen en correoEnviar email

Para finalmente para enviar el correo, se crea una función with que nos permite ejecutar un conjunto de instrucciones sin tener que hacer referencia a otro objeto. 

Como se observa en el código se especifica hacia quien está dirigido, el asunto, los archivos adjuntos, el cuerpo del correo (el saludo, cuerpo y gracias) y finalmente display que conectara el Excel con el Outlook. 

insertar imagen en correo

Finalmente, se pueden agregar más imágenes concatenando y definiendo imágenes al código. 

 

Por : Manuel Mar Valencia

Descargar ejemplo para insertar imagen como parte de un correo electrónico: Insertar imagen en correo VBA

3 comentarios

  1. Donde asignaste la variable sImgPath???

    Saludos:

    Mid(sImgPath, InStrRev(sImg, "\") + 1)

    • Fernando reemplaza la variable sImgPath es sImg

  2. amigo
    podrías ser un macro donde capture como imagen un rango que le demos ejemplo de a2:c4
    o algo asi, para capturar diferentes dinamicas que tengo con diferentes tamaños.... tengo una que lo hace así pero es antigua y cuando cambie a oficie 2016 la imagen que me captura queda como grafico con algunas barras a veces

Deja una respuesta

Los campos requeridos estan marcados con *.