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