我在https://www.crestwood.com/2018/08/17/automating-outlook-calendar-to-send-daily-agenda/上找到了一个脚本。这可行,但是我无法控制日历的详细信息。或更正确地说,我不知道如何发送会议主题和位置。
此代码有办法吗?还是可以通过其他方式解决? 在Outlook中手动执行此操作时,它称为“有限的详细信息”-这是我想要的结果。
我可以在0、1、2之间更改常数:olFreeBusyAndSubject。但是这些都不返回我想要的结果。它们导致(仅看到忙/闲,仅看到主题,包括事件描述的完整详细信息)。我不需要完整的详细信息,因为它们可能是我不希望在辅助电子邮件中显示的敏感信息。
' -------------------------------------------------
' Modify this \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Const myEmailAddress = "some@email.com"
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日历。
提前谢谢!
答案 0 :(得分:0)
在.CalendarDetail = olFreeBusyAndSubject
中,将olFreeBusyAndSubject
替换为olFullDetails
。
要发现此问题,我使用了Bing并搜索了“ Outlook CalendarDetail”。我发现这是一种发现属性允许值的简便方法。