VBA Outlook: Establecer o cambiar la fuente y el tamaño de fuente de un correo electrónico

VBA - Visual Basic for Application

VBA puede utilizarse para maravillosas simplificaciones de trabajo en el mundo de Microsoft Office y uno sólo puede esperar que Microsoft nunca suprima VBA. Supongamos que ha creado un script VBA para generar automáticamente un correo electrónico o responder automáticamente a un correo electrónico. Por supuesto, en tal caso, desea dar formato al correo electrónico un poco según sus deseos y, por ejemplo, cambiar el tamaño o el tipo de fuente. Aquí hay dos opciones disponibles. Depende de si desea que el mensaje tenga formato HTML o de texto enriquecido.

Configuración del tipo y tamaño de letra mediante HTML

El script para crear un nuevo correo electrónico tiene este aspecto. Asegúrese de que no se asigna olFormatPlain a esta propiedad, sino olFormatHTML. En este caso, el correo se formatea utilizando HTML, lo que proporciona la máxima libertad en el diseño del texto.

Public Sub NewMailWithSpecificFontSize()
    Dim olItem As Outlook.MailItem
   
    Set olItem = Application.CreateItem(olMailItem)
    
    With olItem
         .to = "john.doe@my-domain.de"
         .subject = "In urgent matter"
         .BodyFormat = olFormatHTML
         .HTMLBody = "<BODY style=font-size:20pt;font-family:Calibri><p>Hello,</p><p>I am contacting you on urgent matter XY!</p><p>Yours sincerely,<br>Frederike van Sanghausen</p></BODY>"
         .display
    End With

    Set olItem = Nothing
End Sub

En este caso, puedes añadir estilos CSS para cambiar automáticamente la fuente y el tamaño de la fuente. En el ejemplo de código anterior, el tamaño de la fuente dentro del texto HTML se estableció en 20pt, que es bastante grande.
Importante: El texto no debe asignarse a la propiedad Body, de lo contrario verá el código HTML en el propio correo electrónico. El código HTML debe asignarse a la propiedad HTMLBody.

Si ejecuta la macro, el correo electrónico tendrá el siguiente aspecto:

Captura de pantalla de un correo electrónico de Outlook creado con la macro VBA en formato HTML. Se han ajustado las propiedades de fuente y tamaño de fuente.
Ajuste de fuente y tamaño de fuente mediante código de estilo HTML/CSS

Ajustar fuente y tamaño de fuente en formato de texto enriquecido

Outlook también ofrece la opción alternativa de formatear los correos electrónicos como texto enriquecido. Aquí también puede personalizar la fuente y el tamaño de la fuente como desee. El código VBA para esto se parece a esto:

Public Sub NewMailWithSpecificFontSize2()
    Dim olItem As Outlook.MailItem
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdRange As Object
   
    Set olItem = Application.CreateItem(olMailItem)
    
    With olItem
         .to = "john.doe@my-domain.de"
         .subject = "In urgent matter"
         .bodyFormat = olFormatRichText
         .body = "Hello," & vbCrLf & vbCrLf & "I am contacting you on urgent matter XY!" & vbCrLf & vbCrLf & "Yours sincerely," & vbCrLf & "Frederike van Sanghausen"
         
         Set wdApp = .GetInspector
         Set wdDoc = wdApp.WordEditor
         Set wdRange = wdDoc.Range
         wdRange.WholeStory
         With wdRange
            .Font.Name = "Arial Rounded MT Bold"
            .font.size = 16.5
         End With
         
         .display
    End With

    Set olItem = Nothing
End Sub

Puedes ver que tienes que crear un objeto documento de Word (wdDoc) para poder aplicar el formato de texto enriquecido. Sólo entonces tendrás acceso a las propiedades Font.Name y Font.Size. El propio objeto de correo electrónico (olItem) no ofrece estas propiedades.

El resultado entonces se parece a la imagen de abajo:

Captura de pantalla del correo electrónico generado automáticamente en el que el tamaño y la fuente se han ajustado automáticamente utilizando el formato de texto enriquecido
La macro genera un correo electrónico en formato de texto enriquecido con la fuente y el tamaño de fuente ajustados

Si utiliza el formato olFormatPlain como formato, el correo electrónico se formatea como un documento de texto sin formato. En este caso, no es posible dar formato al texto del correo electrónico. Pero esto también puede ser suficiente en algunos casos.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *