在Outlook中使用与Google日历兼容的VBA满足请求

我打算在我的Excel中创build一个可以创build个人outlook会议邀请的macros,并以单个邮件中的.ics格式将邀请添加到先前包含在会议邀请中的收件人中,以便让他们select是否要邀请将其添加到他们的日历。

我有大约200个这样的邀请被发送,我使用一个谷歌邮件帐户添加到我的Outlook 2013为此。

该代码从电子表格中的表中挑选主题和收件人邮件ID(&Mail主体,现在我已经为简单起见删除)。

我写了一个代码,这个macros的工作正常,但这有一个问题。 通过Gmail帐户发送的此类邀请会自动添加到如此订阅的Google日历中。 但是,如此创build并邮寄的这些邀请会被添加,而不会将收件人/与会者/来宾列表导入到Google日历中。 在指定的date和时间,Google日历中添加了一个事件,会议的主体被导出到事件的“说明”字段,但“客户列表”显示为空!

然而,当我手动添加outlook的testing会议并从Outlook中发送邮件中的.ics文件时,Google日历会自动导入该事件,并将收件人列表也添加到其事件的宾客列表中。

我感到困惑的是:

  1. iCal文件的哪个属性捕获Google日历实际导入的收件人列表?

  2. 有没有替代的代码,将iCal文件保存到磁盘,可以使用Outlook新会议窗口中的“作为附件前转”工具?

  3. 我使用iCal文件中的VBA代码设置的提醒似乎不会影响Google日历中的会议。 我如何有效地使用这个或者这是只有Outlook认可的function?

以下是我的代码:

Sub CalendarInvite() Dim Rng As Range, strFileName As String, strRecipient As String Dim strSubject As String, strBody As String Set myoutlook = CreateObject("Outlook.Application") For Each Rng In Range("tblData[Status]") If Rng = "To be Sent" Then Set myapt = myoutlook.CreateItem(olAppointmentItem) strSubject = Cells(Rng.Row, Range("tblData[Subject]").Column) strFileName = "C:\Users\Test\Downloads\CalendarInvites\" & _ Cells(Rng.Row, Range("tblData[Email]").Column) & ".ics" strRecipient = Cells(Rng.Row, Range("tblData[Email]").Column) strBody = "Test Mail Body" With myapt .MeetingStatus = olMeeting .Subject = " Wedding Reception - Ramya & Mohan " .Location = " PJN Mahal, #10, Egabaram Salai, Udaya Nagar, Porur, Chennai 116 " .Start = "28-12-2013 07:00 PM" .Duration = 150 .AllDayEvent = "False" .BusyStatus = "2" .ReminderSet = True .ReminderMinutesBeforeStart = 2880 .ResponseRequested = True .Body = strBody End With Set myRequiredAttendee = myapt.Recipients.Add(strRecipient) myRequiredAttendee.Type = olRequired With myapt .SaveAs strFileName, olICal .Delete End With Set mymail = myoutlook.CreateItem(olMailItem) With mymail .To = strRecipient .Subject = strSubject .Body = strBody .Importance = olImportanceHigh .ReadReceiptRequested = True .Attachments.Add strFileName If Cells(Rng.Row, Range("tblData[Attachment]").Column) = "Yes" Then mymail.Attachments.Add "D:\Directions-PJNMahal.jpg" End If .Send End With Rng = "Sent, Subject to Delivery" End If Next Rng End Sub