30 julio, 2021

ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA

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:

ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA

Para enviar el correo utilizaremos la siguiente macro:

ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA1

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:

ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA2

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:

ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA3

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.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Comparte este post

25 comentario en “ENVIAR FIRMA CON IMAGEN Y TEXTO DESDE OUTLOOK USANDO EXCEL Y VBA

  1. 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

    1. 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.

  2. 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

    1. 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

      1. 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

  3. 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.

  4. 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,

    1. 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.

      1. 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

        1. 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

  5. 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

    1. 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.

  6. 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.

    1. 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.

  7. Excelente aporte. En mi caso necesito enviar estos correos con firma digital electrónica, ¿será posible?. Le agradezco su ayuda.

  8. 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

    1. 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.

  9. 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?

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies