4

我第二次发布此请求,因为虽然我收到了 JimmyPena 的回复,但该解决方案没有奏效,而且我似乎无法就发生的事情添加我的评论。VBA 代码位于 Excel 电子表格而非 Outlook 中。

我正在尝试在 Excel 2007 中编写一些 VB 代码,该代码将在电子表格中指定的日期自动从 Outlook 2007 日历向 Excel 电子表格中列出的收件人列表发送会议邀请。这很有用,因为只需单击一下按钮,我就可以在不同的日期向不同的人发送数百个会议请求。使用以下代码从我自己的用户帐户发送时,我可以做到这一点:

' Create the Outlook session 
Set myoutlook = CreateObject("Outlook.Application") 
' Create the AppointmentItem 
Set myapt = myoutlook.CreateItem(olAppointmentItem)     ' Set the appointment properties 
With myapt 
    .Subject = " Assessment Centre " 
    .Location = "conference room A" 
    .Start = Cells(5, 24 + j) & " 17:00:00 PM" 
    .Duration = 120 
    .Recipients.Add Cells(i, 1).Value 
    .MeetingStatus = olMeeting 
    ' not necessary if recipients are email addresses 
    'myapt.Recipients.ResolveAll 
    .AllDayEvent = "False" 
    .BusyStatus = "2" 
    .ReminderSet = False 
    .Body = L1 & vbCrLf & vbCrLf & L2 & vbCrLf & vbCrLf & L3 & vbCrLf & vbCrLf & L4 
        .Save 
    .send 
End With 

但现在我想从我是代表的虚拟用户帐户发送会议请求,使用类似“sendonbehalfof”的东西,以便虚拟日历存储所有会议邀请,其他代表也可以使用相同的虚拟用户来操作系统用户帐号。这在使用以下代码发送电子邮件时工作正常:

Set oApp = CreateObject("Outlook.Application") 
Set oMail = oApp.CreateItem(0) 

With oMail 
    .To = " John.Smith@John_Smith.com " 
    .Subject = "Subject" 
    .Body = "Body" 
    .SentOnBehalfOfName = "Fred.bloggs@fred_blogs.com" 
    .send 
End With 

电子邮件会说“我代表 Fred Bloggs”</p>

但我无法让它与日历约会一起使用。

我用'约会'、'会议请求'、sendonbehalfof'等词进行了高低搜索,看来你应该能够用'sendusingaccount'进行约会,但这似乎不起作用(它没有'不会失败,只是忽略指令并像以前一样从我自己的用户帐户发送)。
谁能告诉我该怎么做?. 非常感谢。

4

1 回答 1

0

您是否考虑过生成 Internet 日历约会 (ICA) 请求并通过电子邮件发送?我相信该格式包含您可以使用的委托信息。

这是一些关于如何添加它的 Microsoft 文档的链接(在 ASP.Net 中,但这不重要),这里是定义格式的 IETF RFC 的链接。

于 2012-07-27T23:52:18.080 回答