我在https://www.crestwood.com/2018/08/17/automating-outlook-calendar-to-send-daily-agenda/上找到了一个脚本。这有效但我无法控制日历的细节。或者更准确地说,我无法弄清楚如何发送会议主题和位置。
这段代码有办法吗?或者我可以通过其他方式解决这个问题吗?在Outlook中手动执行时,它被称为“有限的详细信息” - 这是我期望的结果。
我可以更改常量:olFreeBusyAndSubject介于0,1,2之间。但是这些都不会返回我想要的结果。他们导致(只看到忙/免费,只看到主题,完整的细节,包括事件的描述)。我不想要完整的详细信息,因为它们可能是我在辅助电子邮件中不需要的敏感信息。
' -------------------------------------------------
' Modify this \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Const myEmailAddress = "[email protected]"
Const includePrivateDetails = TRUE
Const howManyDaysToDisplay = 1
' Modify this /////////////////////////////////////
' -------------------------------------------------
Const olCalendarMailFormatDailySchedule = 0
Const olFreeBusyAndSubject = 2
' Const olFullDetails = 1
Const olFolderCalendar = 9
SendCalendar myEmailAddress, Date, (Date + (howManyDaysToDisplay - 1))
Sub SendCalendar(strAdr, datBeg, datEnd)
Dim olkApp, olkSes, olkCal, olkExp, olkMsg
Set olkApp = CreateObject("Outlook.Application")
Set olkSes = OlkApp.GetNameSpace("MAPI")
olkSes.Logon olkApp.DefaultProfileName
Set olkCal = olkSes.GetDefaultFolder(olFolderCalendar)
Set olkExp = olkCal.GetCalendarExporter
With olkExp
.CalendarDetail = olFreeBusyAndSubject
.IncludePrivateDetails = includePrivateDetails
.RestrictToWorkingHours = False
.StartDate = datBeg
.EndDate = datEnd
End With
Set olkMsg = olkExp.ForwardAsICal(olCalendarMailFormatDailySchedule)
With olkMsg
.To = strAdr
.Send
End With
Set olkCal = Nothing
Set olkExp = Nothing
Set olkMsg = Nothing
olkSes.Logoff
Set olkSes = Nothing
Set olkApp = Nothing
End Sub
如所描述的,期望的结果是通过VBA脚本(或其他自动方式)通过电子邮件发送“有限细节”-Outlook-calendar。
先感谢您!
在.CalendarDetail = olFreeBusyAndSubject
用olFreeBusyAndSubject
取代olFullDetails
。
为了发现这一点,我使用了Bing并搜索了“Outlook CalendarDetail”。我发现这是一种发现属性允许值的简单方法。