跳到主要內容
 

如何防止Outlook提醒太早或太晚?

作者:凱莉 最後修改時間:2024-08-05

例如,您每天的工作時間是從上午9:00到下午6:00,但是現在您要在上午10:00進行約會,並在Outlook中添加2小時的提醒。 這意味著提醒將在工作開始之前的8:00生效。 另一方面,在特殊情況下,提醒可能會在午夜響起。 這非常不方便,某些Outlook用戶可能希望阻止Outlook提早或過晚提醒。 在這裡,我將介紹一個VBA宏供您在Outlook中解決。

Office 標籤 - 在 Microsoft Office 中啟用選項卡式編輯和瀏覽,讓工作變得輕而易舉
解鎖 Outlook 的 Kutools 免費版 立即享有 70 多項功能,永久無限制使用
使用這些進階功能增強您的 Outlook 2024 - 2010 或 Outlook 365。享受 70 多個強大的功能並提升您的電子郵件體驗!

為防止Outlook提醒得太早或太晚,您可以執行以下操作:

步驟1:按下 其他 + F11 同時按鍵打開“ Microsoft Visual Basic for Applications”窗口。

步驟2:展開 Microsoft Outlook對象 在左窗格中,然後將以下VBA宏粘貼到 本次展望會議.

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代碼中的以下參數來指定工作時間:
hinterMaxHour = 20
hinterMinHour = 9

步驟3:保存此VBA,然後重新啟動Microsoft Outlook。

從現在開始,當您在沒有指定提醒時間的情況下創建帶提醒時間的約會時,在您單擊“開始”後,將彈出一個對話框提醒您。 保存並關閉 按鈕。

防止outlook提醒太早或太晚的步驟截圖

如果提醒時間早於指定的提醒時間MinHour,請單擊 Permium Partner 在對話框中,它將更改提醒時間,並在指定的hinterMinHour發出提醒聲音。

如果提醒時間晚於指定的提醒MaxHour,請單擊 Permium Partner 在對話框中,它將更改提醒時間,並在指定的hinterMaxHour提醒您。

注意: 此VBA代碼可與Outlook 2013很好地配合使用,但不適用於Outlook 2010和2007。


最佳辦公生產力工具

突發新聞:Kutools for Outlook 發布 免費版本!

體驗全新的Kutools for Outlook 免費版本擁有 70 多個令人難以置信的功能,您可以永遠使用! 點擊立即下載!

🤖 Kutools人工智慧 : 使用先進的人工智慧技術輕鬆處理電子郵件,包括回覆、總結、優化、擴展、翻譯和撰寫電子郵件。

📧 電子郵件自動化: 自動回覆(適用於 POP 和 IMAP)  /  安排發送電子郵件  /  發送電子郵件時按規則自動抄送/密件副本  /  自動轉送(進階規則)   /  自動添加問候語   /  自動將多收件者電子郵件拆分為單獨的訊息 ...

📨 電子郵件管理: 撤回電子郵件  /  按主題和其他人阻止詐騙電子郵件  /  刪除重複的電子郵件  /  進階搜索  /  合併資料夾 ...

📁 附件專業版批量保存  /  批量分離  /  批量壓縮  /  自動保存   /  自動分離  /  自動壓縮 ...

🌟 介面魔法: 😊更多又漂亮又酷的表情符號   /  當重要電子郵件到來時提醒您  /  最小化 Outlook 而不是關閉 ...

👍 一鍵奇蹟: 使用傳入附件回覆全部  /   反網路釣魚電子郵件  /  🕘顯示寄件者的時區 ...

👩🏼‍🤝‍👩🏻 通訊錄和行事曆: 從選定的電子郵件中大量新增聯絡人  /  將聯絡人群組拆分為各組  /  刪除生日提醒 ...

只需單擊即可立即解鎖 Kutools for Outlook -永久免費。不要等待,立即下載並提高您的效率!

Outlook 的 kutools 功能1 Outlook 的 kutools 功能2