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.
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.
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.
Enviar 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.
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
28/08/2019 a las 7:52 pm
Donde asignaste la variable sImgPath???
Saludos:
Mid(sImgPath, InStrRev(sImg, "\") + 1)
26/04/2021 a las 6:21 am
Fernando reemplaza la variable sImgPath es sImg
20/03/2020 a las 1:54 pm
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