Скрипт для отправки календаря Outlook по электронной почте, изменение уровня детализации? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть скрипт, найденный на https://www.crestwood.com/2018/08/17/automating-outlook-calendar-to-send-daily-agenda/. Это работает, но я не могу контролировать детали календаря.Или, вернее, я не могу понять, как отправить Тема и место встречи .

Есть ли способ с этим кодом?Или я мог бы пойти по-другому?Когда это делается вручную в Outlook, это называется «Ограниченные данные» - это мой желаемый результат.

Я могу изменить константу: olFreeBusyAndSubject между 0, 1, 2. Но ни один из них не возвращает желаемый результат.Они приводят к (только видение занято / свободно, только видение предмета, полная информация, включая описание события).Мне не нужны полные сведения, поскольку они могут быть конфиденциальной информацией, которую я не хочу указывать на своем дополнительном электронном письме.

' -------------------------------------------------
' 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-календарь по электронной почте.

Спасибо заранее!

1 Ответ

0 голосов
/ 27 марта 2019

В .CalendarDetail = olFreeBusyAndSubject заменить olFreeBusyAndSubject на olFullDetails.

Чтобы обнаружить это, я использовал Bing и искал "Outlook CalendarDetail". Я считаю, что это простой метод для определения допустимых значений для свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...