通过电子邮件发送Outlook日历的脚本,更改详细程度?

问题描述 投票:0回答:1

我在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。

先感谢您!

vba outlook outlook-vba
1个回答
0
投票

.CalendarDetail = olFreeBusyAndSubjectolFreeBusyAndSubject取代olFullDetails

为了发现这一点,我使用了Bing并搜索了“Outlook CalendarDetail”。我发现这是一种发现属性允许值的简单方法。

© www.soinside.com 2019 - 2024. All rights reserved.