No sé VBA, pero en PowerShell el script se vería así (note que está usando clases VBA):
#Create Outlook Application object
$ol = New-Object -comObject Outlook.Application
# Create the new email
$mail = $ol.CreateItem(0) # 0 is the value of OlItemType.olMailItem
# Set the subject
$mail.Subject = "Formatting test"
# Set body format to HTML
$mail.BodyFormat = 2 # 2 is the value of OlBodyFormat.olFormatHTML
# Set the body
$mail.HTMLBody = "<html><body><p>Test</p></body></html>"
# Bring the message window to the front
$mail.Display()
Espero que esto ayude.
Editar: habilité las herramientas de desarrollador en mi Outlook y usando ejemplos de documentación Convertí mi código de PowerShell a subrutina VBA:
Sub MakeMessage()
Dim OutlookMessage As Outlook.MailItem
Set OutlookMessage = Application.CreateItem(olMailItem)
OutlookMessage.Subject = "Hello World!"
OutlookMessage.BodyFormat = olFormatHTML
OutlookMessage.HTMLBody = "<html><body><p>Test</p></body></html>"
OutlookMessage.Display
End Sub
aunque todavía no sé cómo ejecutar esto como un script.
Edición: Ok, así es como se usa Eventos para editar el correo electrónico al abrir:
Dim WithEvents m_objMail As Outlook.mailItem
Private Sub Application_ItemLoad(ByVal Item As Object)
Select Case Item.Class
Case olMail
Set m_objMail = Item
End Select
End Sub
Private Sub m_objMail_Open(Cancel As Boolean)
If m_objMail.Subject = "Hello World!" Then
m_objMail.BodyFormat = olFormatPlain
m_objMail.HTMLBody = "<html><body><p>Body: " + m_objMail.body + " </p></body></html>"
End If
End Sub
Es necesario recordar cambiar si la condición en la subrutina m_objMail_Open
para lo que corresponda al correo electrónico generado por el software de su hotel y al HTMLBody generado para que se ajuste a la salida deseada.
Además, tenga en cuenta que el evento MailItem.Open se genera cada vez que se abre un correo electrónico en una nueva ventana, por lo que debe verificar si está tratando con un nuevo correo electrónico en lugar de uno existente (así que supongo Not m_objMail.Sent And Not m_objMail.Saved
para eliminar correos electrónicos enviados y recibidos, pero necesita experimentar con eso).