Macro para cambiar el tipo de fuente del mensaje de un correo de outlook

Tengo en unas celdas de Excel toda la información que necesito enviar por correo desde outlook a otras personas. Tengo los correos de los destinatarios, el asunto, el mensaje (body), etc.. Pero el texto del mensaje me queda en un tipo de letra no deseado . ¿Puedo cambiar a otro tipo de letra y con otro color diferente?

1 respuesta

Respuesta
1

H o l a:

Te anexo un ejemplo de una macro, utiliza Html para cambiar la fuente de la letra:

'***Macro Para enviar correos
Sub correo()
'Por.Dante Amor
    col = Range("H1").Column
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        Set dam = CreateObject("outlook.application").createitem(0)
        dam.To = Range("B" & i) 'Destinatarios
        dam.CC = Range("C" & i) 'Con copia
        dam.Bcc = Range("D" & i) 'Con copia oculta
        dam.Subject = Range("E" & i) '"Asunto"
        'dam.body = Range("F" & i) '"Cuerpo del mensaje"
        Cuerpo = Range("F" & i)         '"Cuerpo del mensaje"
        '
        For j = col To Cells(i, Columns.Count).End(xlToLeft).Column
            archivo = Cells(i, j)
            If archivo <> "" Then dam.Attachments.Add archivo
        Next
        dam.HTMLBody = _
            "<HTML> " & _
                "<BODY>" & _
                    "<P>" & _
                        "<font face=""Calibri"" size=7 color=""Chocolate"">" & _
                            Cuerpo & _
                        "</font>" & _
                    "</P>" & _
                "</BODY> " & _
            "</HTML>"
        dam.send 'El correo se envía en automático
        'dam.display 'El correo se muestra
    Next
    MsgBox "Correos enviados", vbInformation, "SALUDOS"
End Sub

En esta línea de la macro cambia la fuente, el tamaño y el color:

"<font face=""Calibri"" size=7 color=""Chocolate"">" 

Cambia Calibri por el nombre de la funte.

El 7 por el tamaño, sólo acepta valores del 1 al 7. Donde 1 es el tamaño más pequeño del tipo de letra y 7 es el más grande.

El color "Chocolate", lo puedes cambiar por otro nombre, revisa la lista de nombres de colores en este enlace:

http://www.w3schools.com/tags/ref_colornames.asp 


Hola Dante. Mil gracias por tu información. Pero tengo una duda que no dije en el primer  mensaje. El correo de outlook debe llevar una firma digital donde se encuentra la información de la compañía para la cual trabajo. ¿Qué debo hacer para que la macro no me borre la firma digital? La firma digital no es necesario cambiarle el formato. Debe quedar tal y como está configurada en el outlook.

Pendiente...

¿Ya tenías una macro que te genera los correos y te conservaba la firma digital?

Mira yo tengo lo siguiente:

Sub enviar_correo()
Dim OutApp As Object
Dim OutMail As Object
Dim textomensaje As String
Set OutApp = CreateObject("Outlook.Application")
textomensaje = Sheets("Parámetros").Range("D6")
Set OutMail = OutApp.createitem(0) 'Crea un nuevo mensaje de Outlook
 With OutMail
             .display
             .To = Sheets("Parámetros").Range("D2")
             .CC = Sheets("Parámetros").Range("D3")
             .Subject = Sheets("Parámetros").Range("D5")
             .HTMLBody = textomensaje & .HTMLBody 'Esto último pega la firma digital.

'Aquí puse lo que me enviaste.
                .HTMLBody = _ 
                            "<HTML> " & _
                                     "<BODY>" & _
                                              "<P>" & _
                                                       "<font face=""Calibri"" size=2 color=""Darkblue"">" & _
                               textomensaje & _
                                "</font>" & _
                            "</P>" & _
                      "</BODY> " & _
                  "</HTML>"
            .send
        End With

End Sub

Perdona si tal vez te puse a dar vueltas con lo que no era.

¿Qué puedo hacer para que me pegue la firma digital?

Mi código me genera los correos de outlook muy bien con la firma digital.

H o l a:

Te anexo la macro actualizada

Sub enviar_correo()
'Por.Dante Amor
    Set dam = CreateObject("outlook.application").createitem(0)
    dam.Display
    dam.To = Sheets("Parámetros").Range("D2")
    dam.CC = Sheets("Parámetros").Range("D3")
    dam.Subject = Sheets("Parámetros").Range("D5")
    Cuerpo = Sheets("Parámetros").Range("D6")
    dam.HTMLBody = "<HTML> " & "<BODY>" & "<P>" & _
            "<font face=""Calibri"" size=2 color=""Darkblue"">" & _
                Cuerpo & _
            "</font>" & "</P>" & "</BODY> " & "</HTML>" & dam.HTMLBody
    dam.send
End Sub

No es necesario declarar todos los objetos del correo, con esta línea se crea el correo:

Set dam = CreateObject("outlook.application").createitem(0)

S a l u d o s . D a n t e   A m o r. Recuerda Cambiar la valoración de la respuesta. G r a c i a s

¡Gracias! Dante vos sos el mejor. Sino, eres el que le sigue.

Muy amable.

Hola Dante. Tengo otras duditas. ¿Cómo debo escribir para que me muestre un color no tan predeterminado "chocolate", "lightblue"; sino uno que tiene una referencia RGB(31, 73, 125)?

Y para dejar espacio sencillo, ¿coloco por ejemplo "Hola<br>"?

Y para espacio doble, ¿coloco por ejempo "Los informes son:<br><br>"?

Muchas gracias.

H o l a:

Crea una nueva pregunta por cada petición y revisamos las opciones de colores y espaciado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas