Hola a todos, ¿qué tal estáis?, espero que muy bien.
En el post de hoy voy os mostraré un método para incorporar imágenes y texto en un correo que vamos a enviar desde Outlook pero utilizando VBA en Excel.
Este tema suele ser muy recurrente y no es la primera vez que me piden en la web una macro para realizar esta tarea.
En una hoja Excel utilizaré dos columnas, una para indicar el correo electrónico y otra para indicar el texto de correo que queremos enviar:
Para enviar el correo utilizaremos la siguiente macro:
El código os lo dejo como imagen (el motivo es el campo HTMLBody que al tener caracteres en HTML se ejecutan en el post y hacen que no se vea correctamente). De todas formas, en el adjunto lo podéis copiar.
En esta macro generamos un correo por cada línea de datos que tengamos en la hoja «CORREO». Para que la imagen sea visible y se pueda embeber o incrustar en el correo primero hacemos referencia al lugar en el que se encuentra del equipo, en este caso es el logo de Excel Signum:
imagen = "C:\Users\Segu\Documents\EXCEL SIGNUM\EXCELSIGNUM.jpg"
Una vez que la hemos seleccionado la adjuntamos al correo e indicamos que no sea visible como archivo adjunto:
.Attachments.Add imagen, 0
Ahora que ya la tenemos, componemos con Html la firma del correo:
En la firma he incluido un hipervínculo a mi web y hago referencia a la imagen que hemos adjuntado y ocultado para que se muestre en el cuerpo del correo. Para que quede como si fuese una firma lo ponemos al final e incorporamos unos cuantos saltos de línea «br» antes del texto que he incluido en la variable «texto».
El resultado es el siguiente:
Como podéis observar, ya tenemos nuestra firma con imagen y texto (y un vínculo) en nuestro cuerpo de correo. Perfecto!.
Este método solo funcionará correctamente en outlook, dado que estamos trabajando en todo momento con el objeto Outlook.applicatacion.
Y eso es todo, espero que os resulte de interés y lo podáis usar en vuestras comunicaciones.
Descarga el archivo de ejemplo pulsando en: ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Muy útil.
como podria ser el codigo para visual basic 6 uso el siguiente codigo:
Private Sub cmdSend_Click()
Dim objOutlook As Outlook.Application
Dim objMailItem As Outlook.MailItem
Dim objATCH As Outlook.Attachments
Dim Cuerpo As String
Set objOutlook = CreateObject(«outlook.application»)
Set objMailItem = objOutlook.CreateItem(olMailItem)
objMailItem.SentOnBehalfOfName = Correo_De
objMailItem.To = txtPara.Text
objMailItem.CC = txtCc.Text
objMailItem.BCC = txtCco.Text
objMailItem.Subject = txtAsunto.Text
Cuerpo = Cuerpo & » » & Me.lblSaludo1.Caption & vbCr
Cuerpo = Cuerpo & » » & Me.lblSaludo2.Caption & vbCr & vbCr & vbCr
Cuerpo = Cuerpo & » » & Me.lblNombres.Caption & » » & Me.Text1.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblCedula.Caption & » » & Me.Text2.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblFicha.Caption & » » & Me.Text3.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblEmpresa.Caption & » » & Me.Text4.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblGerencia.Caption & » » & Me.Text5.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblDepartamento.Caption & » » & Me.Text6.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblCargo.Caption & » » & Me.Text7.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblIngreso.Caption & » » & Me.Text8.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblEgreso.Caption & » » & Me.Text9.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblPreaviso.Caption & » » & Me.Text10.Text & vbCr
Cuerpo = Cuerpo & » » & Me.lblMotivo.Caption & » » & Me.Text11.Text & vbCr & vbCr & vbCr
Cuerpo = Cuerpo & Me.lblDespedida.Caption & vbCr & vbCr & vbCr
Cuerpo = Cuerpo & Me.Image1 & vbCr & vbCr & vbCr
Cuerpo = Cuerpo & Usuario & vbCr & vbCr & vbCr ‘ la variable del usuario que se firmo jejejejej
objMailItem.Body = Cuerpo & vbCr
objMailItem.BodyFormat = olFormatHTML
objMailItem.Send
MsgBox «Correo Electronico Enviado «, vbInformation, «Los mejores Programando a distancia jejejej»
Set objOutlook = Nothing
End Sub
no me adjunta la imagen para la firma
Aunque no programo en VB 6, entiendo que debes adjuntar la imagen con el «Método Attachments. Add» o similar y mostrarlo luego con html en el cuerpo del correo.
Saludos.
disculpa la molestia me indicarias como seria esa parte del “Método Attachments. Add” en vb6 soy nuevo en esto
Hola, te felicito por el desarrollo del tema.
Solo tengo una pregunta ¿Cómo puedo hacer para abrir un correo de Outlook, desde una dirección de correo en Excel?
Gracias por tus comentarios
Saludos
Hola Alfredo:
Para eso basta con posicionarte encima del email (que tendrás en una celda de Excel) y automáticamente se mostrará el asistente de correo definido que tengas en tu equipo.
Saludos
Muchas gracias por tu comentario. Pero quizás no me di a entender, lo que necesito es enviar un correo desde una dirección en Excel con una macro. Ya realice el envío con una macro desde Excel, pero quiero en lugar de enviarlo que solamente lo habrá para poder editarlo. Gracias por tus comentarios
Lo único que se me ocurre es que muestres el correo pero en modo bandeja de salida:
Más o menos lo que se realiza aquí:
https://excelsignum.com/2019/06/09/seleccionar-archivos-de-una-carpeta-y-enviarlos-por-outlook-segun-catalogo-de-informes/
Cordial saludo, como realizo el mismo procedimiento para CDO, requiero enviar correos con mi firma. La cual contiene una imagen, aun no resuelvo ¿cómo hacerlo?. Mil gracias por su pronta respuesta.
Puedes ver bibliografía sobre el tema aquí:
https://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/337-enviar-correo-en-vb-con-microsoft-cdo.htm
Saludos.
Hola, funciona todo bien,la foto se adjunta al correo pero la foto en la firma no se llega a ver, aparece el recuadro pero no se muestra la imagen.
Sabrías por qué puede ser…
Gracias de antemano,
Hola José:
Presta atención al ancho y alto de la imagen y verifica que los valores son correctos. No uses formato de imagen GIF o TIFF.
Saludos.
buenas noches cuando agrego la firma predeterminada de Outlook el texto lo acepta pero la imagen dice que no se puede mostrar estoy haciendo referencia al archivo htm con macro VBA Excel
Lo puedes hacer de muchas formas
1) añadiendo la firma en el outlook y cada vez que envies un correo la firma se anade automáticamente al final del testo del correo
2) Agregando la firma al final del texto o datos Excel que vas a enviar
3) Teniendo la firma en una imagen en la hoja Excel y cuando envíes los datos Excel, adjuntas también la imagen al final
Buenas tardes. Tengo dos preguntas respecto de esta macro.
1. Cómo utilizar el envío el mismo mecanismo con el outlook web.
2. En el texto del correo (Body), tengo que incluir una fecha, pero quisiera que me aparezca, por ejemplo, 11-ago-2019, y no como asume el sistema 11/08/2019, pese a que en el excel de donde extrae la fecha está como yo quiero. Cómo puedo modificarle el formato?
GRacias
Hola Alberto:
La fecha debes incluira en otra celda, por ejemplo cells(i,3) y formatearla: Format(Cells(4, 2), «d-mmm-yyyy»)
luego solo debes concatenar o crear la cadena de texto del cuerpo del correo.
Respecto al outlook web, esta programación está diseñada para outlook instalado en el equipo. Tendría que analizar si es posible una programación en ese entorno.
Saludos.
Muchas gracias por la respuesta. Me sirvió totalmente.
Buenas tardes, estoy probando el código del ejemplo pero al parecer solo funciona en los mensajes enviados del mismo PC porque cuando lo abro desde otro PC o movil, la imaguen del cuerpo del correo dice que no se puede mostrar imagenes vinculadas y el archivo adjunto del jpg se puede evidenciar de hecho hasta en el mismo PC pero en mensajes recibidos sale este problema.
Buenas tardes:
He comprobado lo que indicas y no he conseguido reproducir el problema. La imagen va con un hipervínculo a la web que estimes oportuna, pero no está vinculada a ningún lugar, la imagen se carga.
Saludos.
Excelente aporte. En mi caso necesito enviar estos correos con firma digital electrónica, ¿será posible?. Le agradezco su ayuda.
Hola Edgar,
Desconozco si es posible realizar lo que indicas, nunca lo he probado, Saludos
Hola amigos,
desearía si me permitís hacer una consulta
si en vez de tener la imagen de la firma en una carpeta, la tengo en la propia hoja de Excel como seria el codigo?
en carpeta yo tengo «»
teniendo la imagen de firma en una hoja Excel como seria el codigo?
Gracias
Saludos
Hola Juan:
No es posible hacerlo con referencia a una celda, (no se puede obtener el objeto incrustado o embebido), es necesario seleccionarlo de un directorio como imagen.
Saludos.
Hola
Justo estoy usando el mismo método para hacer un centenar de correos con firma pero lo que me pasa es que cuando abro el correo que se genero no me aparece la imagen, aparece como un error, dice que la imagen se ha movido o no esta en la carpeta y si se encuentra en la carpeta. como corrijo este problema?
Verifica que siga estando en la misma carpeta y sigue detenidamente el post.
Saludos