【发布时间】:2020-10-28 16:21:10
【问题描述】:
我在使用来自网络的科学怪人的一些代码时遇到了一些问题。我有一个 Word 文档,它使用命令按钮运行一段代码,最终结果是生成了一个添加了模板的 Outlook 约会以及收件人。我使用了 2 种不同的方法,每种方法都有自己的问题。
方法 1:生成约会,包括并显示与会者,但不允许正文的 HTML 格式
Dim xOutlookObj As Object
Dim OMail As Object
Dim xMeeting As Object
Dim xDoc As Object
Dim myRequiredAttendee As Outlook.Recipient
Dim myOptionalAttendee As Outlook.Recipient
Application.ScreenUpdating = False
Set xOutlookObj = CreateObject("Outlook.Application")
Set xEmail = xOutlookObj.CreateItem(olMailItem)
Set xDoc = ActiveDocument
opCancel = False
Set xOutlookObj = CreateObject("Outlook.Application")
Set xMeeting = xOutlookObj.CreateItem(olAppointmentItem)
Set myRequiredAttendee = xMeeting.Recipients.Add(EMAIL ADDRESSES)
myRequiredAttendee.Type = olRequired
Set xDoc = ActiveDocument
With xMeeting
.MeetingStatus = olMeeting
.Display
.Subject = "MEETING SUBJECT"
.Duration = 60
.Body = "MESSAGE BODY THAT I'D LIKE TO FORMAT, BUT THIS METHOD DOESN'T PERMIT HTML"
End With
Set xDoc = Nothing
Set xMeeting = Nothing
Set xOutlookObj = Nothing
Application.ScreenUpdating = True
方法 2:生成约会,允许对正文进行 HTML 格式设置,加载与会者但不显示他们。当我单击邀请中的“邀请与会者”按钮时,它们都会出现(因此它们显然正在被加载)。
Dim olapp As Outlook.Application, appt As Outlook.AppointmentItem
Dim m As Outlook.MailItem
Dim rtf() As Byte
Set olapp = New Outlook.Application
Set m = olapp.CreateItem(olMailItem)
Set appt = olapp.CreateItem(olAppointmentItem)
appt.Display
appt.Subject = "MEETING SUBJECT"
appt.Duration = 60
appt.RequiredAttendees = "EMAIL ADDRESSES"
m.BodyFormat = olFormatHTML
m.HTMLBody = "<font style=""color: red;"">VERIFY SUBJECT LINE & MEETING START TIME ARE CORRECT, THEN DELETE THIS LINE" & _
"<font style=""color: black;""><p>REST OF TEXT BODY</P>
m.GetInspector().WordEditor.Range.FormattedText.Copy
appt.GetInspector().WordEditor.Range.FormattedText.Paste
m.Close False 'don't save...
我正在寻找的是创建约会、加载和显示与会者、并允许 HTML 格式化正文的代码。另外,我不能使用 .send 命令,因为在发送之前仍然需要编辑邀请的正文 - 这就是为什么我希望显示与会者以避免混淆。
谢谢!
【问题讨论】:
标签: vba outlook appointment