[Я нашел это «решение»] [1]. Кажется, что нет реального решения, но этот сайт имеет обходной путь в комментариях
Привет, это не исправление для 18 часов, но это обходной путь. Он поставляется в виде макроса Outlook, который я только что написал - вы все можете использовать приведенный ниже код.
Он выполняет поиск в вашем календаре только на следующие шесть месяцев всех встреч в течение дня, а затем устанавливает для них уведомление равным 0 минутам. Это означает, что вы должны получать их на своем ежевике в тот же день.
После того, как вы скопируете код в Outlook, я советую вам подписать его самостоятельно, чтобы Outlook мог запустить его с безопасностью макросов на хорошем уровне и поместить кнопку макросов на панель инструментов - инструкции для обоих находятся на сайтах ниже. Тогда вам просто нужно нажимать кнопку макроса в Outlook каждый день \ неделю, и вам не нужно беспокоиться о том, чтобы назначить встречу на весь день в Outlook без изменения уведомления.
Надеюсь, поможет.
Sub AllDaySetToZero()
Dim daStart, daEnd As Date
Dim oCalendar As Outlook.Folder
Dim oItems As Outlook.Items
Dim oItemsInDateRange As Outlook.Items
Dim oFinalItems As Outlook.Items
Dim oAppt As Outlook.AppointmentItem
Dim strRestriction As String
Dim Debuglog
Dim CurrentTitle As String
‘ PART ONE
‘ Set the date range for the appointments query -
‘ It is set below to start at todays date and
‘ end at todays date + 120 days (or 4 months)
‘ You can increase or reduce this based on your PCs performance
daStart = Format(Date, “mm/dd/yyyy hh:mm AMPM”)
daEnd = DateAdd(”d”, 120, daStart)
daEnd = Format(daEnd, “mm/dd/yyyy hh:mm AMPM”)
Debuglog = “1 Start: ” & daStart
Debuglog = Debuglog & “, ” & “1 End: ” & daEnd
‘ PART TWO
‘ Construct a filter for the next 120-day date range.
strRestriction = “[Start] >= ‘” & daStart _
& “‘ AND [End] <= ‘” & daEnd & “‘”
Debuglog = Debuglog & “, ” & “2 ” & strRestriction
‘ PART THREE
‘ The macro obtains the set of appointment items in the default calendar
‘ specified by the current Outlook user profile.
Set oCalendar = Application.Session.GetDefaultFolder(olFolderCalendar)
Set oItems = oCalendar.Items
‘ PART FOUR
‘ To include recurring appointments, sort by using the Start property.
oItems.IncludeRecurrences = True
oItems.Sort “[Start]”
‘ PART FIVE
‘ Restrict the Items collection for the 1110-day date range.
Set oFinalItems = oItems.Restrict(strRestriction)
‘ PART SIX
‘ Go through each calendar item remaining in turn
‘ If it isn’t a full Day event do nothing
‘ If it is set Reminder to 0 Minutes.
oFinalItems.Sort “[Start]”
For Each oAppt In oFinalItems
Debuglog = Debuglog & “, ” & “6 ” & oAppt.Start & “, ” & oAppt.Subject & “, ” & oAppt.ReminderMinutesBeforeStart
CurrentTitle = oAppt.Subject
If oAppt.AllDayEvent = False Then
Else
oAppt.ReminderMinutesBeforeStart = 0
oAppt.Save
End If
Debuglog = Debuglog & “, ” & “6 ” & oAppt.Start & “, ” & oAppt.Subject & “, ” & oAppt.ReminderMinutesBeforeStart & vbNewLine & vbNewLine
Next
Debuglog = “”
End Sub