Ich kenne VBA nicht, aber in PowerShell würde das Skript so aussehen (beachten Sie, dass es VBA-Klassen verwendet):
#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()
Ich hoffe das hilft.
Bearbeiten: Ich habe die Entwicklertools in Outlook aktiviert und anhand von Beispielen aus der Dokumentation meinen PowerShell-Code in eine VBA-Subroutine konvertiert:
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
obwohl ich immer noch nicht weiß, wie ich das als Skript ausführen soll.
Bearbeiten: Ok, so verwenden Sie Events, um die E-Mail beim Öffnen zu bearbeiten:
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
Sie müssen daran denken, die Bedingung in der Subroutine entsprechend m_objMail_Open
der E-Mail-Adresse Ihrer Hotelsoftware und des generierten HTMLBody an Ihre gewünschte Ausgabe anzupassen.
Beachten Sie auch, dass das MailItem.Open -Ereignis ausgelöst wird, wenn eine E-Mail in einem neuen Fenster geöffnet wird. Sie müssen also prüfen, ob Sie mit neuen E- Not m_objMail.Sent And Not m_objMail.Saved
Mails zu tun haben, und nicht mit bereits existierenden E-Mails Sie müssen damit experimentieren).