Как избежать напоминаний в Outlook, которые приходят слишком рано или слишком поздно?
Например, вы работаете ежедневно с 9:00 до 18:00, но сейчас создаёте встречу на 10:00 и добавляете для неё напоминание за 2 часа в Outlook. В этом случае напоминание сработает в 8:00 утра — до начала рабочего дня. Более того, в особых случаях оно может прозвучать даже в полночь. Это крайне неудобно, и многие пользователи Outlook хотели бы избежать слишком ранних или слишком поздних напоминаний. Ниже я покажу вам макрос VBA, который решает эту проблему в Outlook.
- Повысьте продуктивность работы с электронной почтой с помощью технологий ИИ — быстро отвечайте на письма, создавайте новые сообщения, переводите тексты и работайте ещё эффективнее.
- Автоматизируйте отправку писем с помощью Авто Копия/Скрытая копия и Автоматическое перенаправление по правилам; отправляйте Автоответ («Нет на месте») — без необходимости использовать сервер Exchange…
- Получайте напоминания, такие как Предупреждать при ответе на электронное письмо, в котором я указан в поле BCC — когда вы отвечаете всем, находясь в скрытой копии (BCC), а также Напоминание о пропущенных вложениях — если вы забыли прикрепить файлы…
- Повысьте эффективность работы с электронной почтой с помощью Ответ с вложениями (все), автоматического добавления приветствия или даты и времени в подпись или тему письма, Ответ на несколько писем сразу…
- Оптимизируйте работу с электронной почтой с помощью Отозвать письмо, Инструменты вложений(Сжать все, Автосохранение всех…),Удалить дубликаты и Быстрый отчет…
Чтобы предотвратить слишком ранние или слишком поздние напоминания в Outlook, выполните следующие действия:
Шаг 1: одновременно нажмите клавиши Alt+F11, чтобы открыть окно Microsoft Visual Basic for Applications.
Шаг 2: разверните узел Объекты Microsoft Outlook на левой панели и вставьте приведённый ниже макрос VBA в модуль ThisOutlookSession.
VBA: предотвращение слишком ранних или слишком поздних напоминаний в Outlook
Public WithEvents g_CalendarItems As Outlook.Items
Public Sub Application_Startup()
Set g_CalendarItems = Outlook.Session.GetDefaultFolder(olFolderCalendar).Items
End Sub
Private Sub g_CalendarItems_ItemAdd(ByVal Item As Object)
CheckReminder Item
End Sub
Private Sub g_CalendarItems_ItemChange(ByVal Item As Object)
CheckReminder Item
End Sub
Sub CheckReminder(ByVal Item As Object)
On Error GoTo ProcError
Dim strProcName As String
strProcName = "CheckReminder"
reminderMaxHour = 20
reminderMinHour = 9
Dim aAptItem As Outlook.AppointmentItem
Set aAptItem = Item
If aAptItem.ReminderSet Then
Dim reminderDate As Date
reminderDate = aAptItem.Start - aAptItem.ReminderMinutesBeforeStart / (24 * 60)
reminderHour = (reminderDate - Int(reminderDate)) * 24
tolerance = 0.01 ' avoid floating point small diffs (little bit less than a min)
If reminderHour < reminderMinHour - tolerance Or reminderHour > reminderMaxHour + tolerance Then
' best guess, first try to advance to next minHour
reminderDateSuggestion = reminderDate + (reminderMinHour - reminderHour) / 24
' verify if first guess is valid
If reminderHour < reminderMinHour - tolerance And reminderDateSuggestion <= aAptItem.Start Then
' OK, first guess is valid, keep it
ElseIf reminderHour > reminderMaxHour Then
' go back to max hour (same day)
reminderDateSuggestion = reminderDate - (reminderHour - reminderMaxHour) / 24
Else
' go back to max hour (previous day)
reminderDateSuggestion = reminderDate - (reminderHour + 24 - reminderMaxHour) / 24
End If
rep = MsgBox("The Reminder time is out of specified working period. Would you like to change the Reminder time?" , vbQuestion + vbYesNoCancel)
If rep = vbCancel Then
aAptItem.Display
ElseIf rep = vbYes Then
aAptItem.ReminderMinutesBeforeStart = (aAptItem.Start - reminderDateSuggestion) * 24 * 60
aAptItem.Save
End If
End If
End If
ProcExit:
Exit Sub
ProcError:
MsgBox "Unanticipated error " & Err.Number & " " & Err.Description & vbCrLf & "In procedure: " & strProcName
End Sub
Примечание: вы можете задать свой рабочий период, изменив следующие параметры в приведённом выше коде VBA:
reminderMaxHour = 20
reminderMinHour = 9
Шаг 3: сохраните этот макрос VBA и перезапустите Microsoft Outlook.
Теперь при создании встречи с напоминанием, время которого выходит за пределы указанного вами рабочего периода, после нажатия кнопки Сохранить и закрыть появится диалоговое окно с предупреждением.

Если время напоминания установлено раньше указанного значения reminderMinHour, нажмите кнопку Да в диалоговом окне — тогда оно будет автоматически изменено на reminderMinHour, чтобы напоминание сработало в заданное время.
Если время напоминания позже указанного значения reminderMaxHour, нажмите кнопку Да в диалоговом окне — тогда время напоминания будет изменено так, чтобы оно сработало в заданный момент reminderMaxHour.
Примечание: Этот код VBA корректно работает в Outlook 2013, но не поддерживается в Outlook 2010 и 2007.
Лучшие инструменты для повышения продуктивности в Office
Оцените совершенно новый Kutools для Outlook с 100+ потрясающими функциями!Нажмите, чтобы скачать прямо сейчас!
📧Автоматизация работы с электронной почтой: Автоответ (доступен для POP и IMAP) / Планирование отправки писем / Авто Копия/Скрытая копия по правилам при отправке писем / Автоматическое перенаправление (расширенное правило) / Автоматическое добавление приветствия / Автоматическое разделение писем с несколькими получателями на отдельные сообщения…
📨Управление электронной почтой: Отозвать письмо / Блокировка спама по теме и другим признакам / Удаление дубликатов писем / Расширенный поиск / Организация папок…
📁Продвинутая работа с вложениями: Пакетное сохранение / Пакетное отсоединение / Пакетное сжатие / Автосохранение / Автоматическое отсоединение / Автоматическое сжатие…
🌟Волшебство интерфейса: 😊Еще больше красивых и стильных эмодзи / Напоминание о важных входящих письмах / Сворачивание Outlook вместо закрытия…
👍Чудеса одним щелчком: Ответить всем с вложениями / Защита от фишинговых писем / 🕘Отображение часового пояса: текущее время отправителя…
👩🏼🤝👩🏻Контакты и календарь: Пакетное добавление контактов из выбранных писем / Разделение группы контактов на отдельные группы / Удаление напоминания о дне рождения…
Используйте Kutools на вашем любимом языке — поддержка английского, испанского, немецкого, французского, китайского и более чем 40 других языков!


🚀 Скачать одним щелчком — Получите все надстройки для Office
Настоятельно рекомендуется: Kutools for Office (5 в 1)
Скачайте одним щелчком пять установщиковсразу —Kutools для Excel, Outlook, Word, PowerPointи Office Tab Pro.Нажмите, чтобы скачать прямо сейчас!
- ✅Удобство одним щелчком: Скачайте все пять установочных пакетов за одно действие.
- 🚀Готовы к любой задаче в Office: устанавливайте нужные надстройки именно тогда, когда они вам понадобятся.
- 🧰Входит в комплект: Kutools для Excel / Kutools для Outlook / Kutools для Word / Office Tab Pro / Kutools for PowerPoint