Outlookが早すぎたり遅すぎたりするリマインダーを防ぐ方法は?
例えば、あなたが毎日午前9時から午後6時まで働いているとします。しかし、今朝10時にアポイントメントを作成し、Outlookで2時間前のリマインダーを設定すると、それはあなたの勤務開始前の午前8時にリマインダーが作動することを意味します。一方で、特別な状況ではリマインダーが真夜中に鳴ることがあります。これは非常に不便であり、一部のOutlookユーザーはリマインダーが早すぎたり遅すぎたりすることを防ぎたいと思うかもしれません。ここで、その問題を解決するためのVBAマクロをご紹介します。
- AI技術を使用してメールの生産性を向上させ、迅速な返信、新規作成、メッセージの翻訳などをより効率的に行えます。
- 自動CC/BCCやルールによる自動転送でメールを自動化し、Exchangeサーバーなしで自動返信(外出中)を送信...
- BCCに自分が含まれている場合に全員に返信する際のBCC警告や、添付ファイルを忘れた場合の「添付ファイルがない場合のリマインダー」などの通知を受け取れます...
- 添付ファイル付きでの返信(全員)、挨拶または日時を署名または件名に自動追加、複数のメールへの返信などにより、メールの効率を向上させます...
- メール取り消し、添付ファイルツール(すべて圧縮、自動保存)、重複したメールの削除、クイックレポートなどでメール業務を合理化します...
Outlookが早すぎたり遅すぎたりするリマインダーを防ぐには、次のように操作できます:
ステップ 1: AltキーとF11キーを同時に押して、Microsoft Visual Basic for Applicationsウィンドウを開きます。
ステップ 2: 左ペインの「Microsoft Outlook Objects」を展開し、次の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では動作しません。
最高のオフィス生産性ツール
速報: Kutools for Outlook が無料版をリリース!
新しい Kutools for Outlook の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!
🤖 Kutools AI : 高度なAI技術を使用して、メールの返信、要約、最適化、拡張、翻訳、作成を簡単に行います。
📧 メール自動化: 自動返信 (POPとIMAPで利用可能) / メール送信のスケジュール / メール送信時にルールによる自動 CC/BCC / 自動転送 (高度なルール) / 自動挨拶追加 / 複数の宛先を持つメールを個別のメールに自動的に分割...
📨 メール管理: メールの取り消し / 件名やその他によるスパムメールのブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理...
📁 添付ファイルプロ: バッチ保存 / バッチ切り離し / バッチ圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...
🌟 インターフェースマジック: 😊より美しくクールな絵文字 /重要なメールが来たときに通知 / クローズ中ではなくOutlookを最小化...
👍 ワンクリックの驚き: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーンを表示...
👩🏼🤝👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加 /連絡先グループを個別のグループに分割 / 誕生日のリマインダーを削除...
Kutools for Outlook をワンクリックで即座にアンロック。待たずに今すぐダウンロードして効率を高めましょう!

