
Para insertar imágenes en línea (no como adjuntos) en un correo electrónico desde Excel, puedes utilizar VBA (Visual Basic for Applications) para automatizar el proceso. Aquí te dejo un ejemplo sobre cómo hacerlo utilizando Outlook como cliente de correo:
Sub EnviarCorreoConImagenEmbebida()
Dim OutApp As Object
Dim OutMail As Object
Dim strBody As String
' Cambia la ruta de la imagen a la de tu archivo
Dim strImagePath As String
strImagePath = "C:rutadetuimagen.jpg"
' Cuerpo del correo electrónico
strBody = "<html><body>" & _
"<h2>Hola,</h2>" & _
"<p>Este es un correo con una imagen insertada:</p>" & _
"<img src='cid:imagen1'>" & _
"</body></html>"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "destinatario@ejemplo.com"
.Subject = "Correo con Imagen Embebida"
.HTMLBody = strBody
' Adjuntar imagen y asignar Content ID
Dim iImage As Object
Set iImage = .Attachments.Add(strImagePath)
iImage.PropertyAccessor.SetProperty "http://schemas.microsoft.com/mapi/proptag/0x3712001F", "imagen1"
.Display ' Cambiar a .Send para enviar directamente
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
- Asegúrate de que Outlook esté instalado y configurado en tu computadora, ya que el script lo utilizará para enviar el correo.
- Guarda las imágenes que deseas insertar en tu correo electrónico en una ubicación accesible y anota sus rutas.
- Abre Excel y presiona `Alt + F11` para abrir el entorno de desarrollo de VBA.
- En el Editor de VBA, ve a `Insertar` > `Módulo` para crear un nuevo módulo.
- Copia y pega el siguiente código en el módulo que creaste:
- Modifica el código según tus necesidades, reemplazando `destinatario@ejemplo.com` con la dirección de correo del destinatario y `C:rutadetuimagen.jpg` con la ruta completa de tu imagen.
- Ejecuta el script presionando `F5` mientras el módulo está abierto en el Editor de VBA.
Este script creará un correo electrónico en Outlook con una imagen embebida en el cuerpo del mensaje. Si quieres enviar directamente el correo sin verlo primero, sustituye `.Display` por `.Send`.
Recuerda que este procedimiento es específico para Outlook y utiliza VBA. Si utilizas otro cliente de correo, necesitarás adaptarlo o utilizar una herramienta compatible.
Conoce nuestros servicios



