我正在做一个脚本来自动预定会议室。但是在最后一步,AppointmentItem不能更改为MeetingItem。这是代码:
Set myItem = myOlApp.CreateItem(1)
myItem.MeetingStatus = olMeeting
myItem.Subject = "..."
myItem.Location = "..."
myItem.Start = #...#
myItem.Duration = 90
set myResourceAttendee = myItem.Recipients.Add("xxx@xxx.com")
myResourceAttendee.Type = olResource
myItem.Save
' myItem.Send
我相信我经常将收件人的类型设置为“ olResource”,根据MS Docs,这是相同的方式。但这就是我得到的:
我的日历中的项目显示它仍然是Appointment,而我添加的资源是Required Attendee。
在我将其手动设置为“资源”之后,它就变成了Meeting。我不了解这是如何发生的,以及如何解决这个问题。请帮我!非常感谢!
顺便说一句,Outlook版本是32位Outlook 2016(16.0.4849.1000)。
答案 0 :(得分:0)
vbscript中不知道Outlook枚举值,例如olMeeting
和olResource
(相对于Outlook-VBA)
您首先需要从文档中找出它们的数值。
例如,OlMeetingStatus enum文档说:
olMeeting-1-会议已安排。
olMeetingCanceled-5-预定的会议已被取消。
olMeetingReceived-3-已收到会议请求。
olMeetingReceivedAndCanceled-7-预定会议已被取消,但仍显示在用户的日历上。
olNonMeeting-0-已经安排了没有与会者的约会项目。此状态可用于在日历上设置假期。
然后在vbscript中,您可以定义自己的常量以匹配已知的枚举值
const olMeeting = 1 '<- define enum value here
dim myItem
Set myItem = myOlApp.CreateItem(1)
myItem.MeetingStatus = olMeeting '<- use it here just like you would in VBA