Outlook カレンダーで予定を作成または変更すると、Outlook は自動的に競合する予定がないかを確認します。この時点で競合を確認したい場合は、この記事で紹介する方法を使用できます。
Outlookの予定を作成または変更するときに、「別の予定との競合」というテキストを見たことがあるかもしれません。 Outlookが競合を自動チェックできるためです。 ただし、Outlookは、デフォルトの機能によって競合をすばやく見つけるのに役立ちません。 したがって、ここでは、競合するすべての予定を検索する関数を生成する方法を説明します。

特定の予定と競合する他のすべての予定を調べる
- 最初に、Outlookプログラムを起動します。
- 次に、Outlookのメインウィンドウで、「Alt + F11」キーボタンを押します。
- すぐに、Outlook VBAエディターにアクセスします。このエディターでは、未使用のモジュールを開く必要があります。
- 次に、次のVBAコードをこのモジュールにコピーします。
Sub FindOutConflictingAppointments()
Dim objAppointment As AppointmentItem
Dim dStartTime, dEndTime As Date
Dim strFilter As String
Dim objAppointments As Items
Dim objFoundAppointments As Items
Dim objItem As AppointmentItem
Dim i As Long
Dim strConflicts As String
Dim strMsg As String
Select Case Application.ActiveWindow.Class
Case olExplorer
Set objAppointment = Application.ActiveExplorer.Selection(1)
Case olInspector
Set objAppointment = Application.ActiveInspector.CurrentItem
End Select
dStartTime = objAppointment.start
dEndTime = objAppointment.End
Set objAppointments = Application.ActiveExplorer.CurrentFolder.Items
i = 1
'1: Find all appts whose end time within the start and end time of source appt
strFilter = "[End] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
'2: Find all appts occurring within the start and end time of source appt
strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
'3: Find all appts whose start time within the start and end time of source appt
strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [Start] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
'4: Find all appts cover the entire source appt
strFilter = "[Start] <= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] >= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
Set objFoundAppointments = objAppointments.Restrict(strFilter)
For Each objItem In objFoundAppointments
If objItem.Subject <> objAppointment.Subject Then
strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
i = i + 1
End If
Next
strMsg = i - 1 & " Conflicting Appointments:" & vbCrLf & vbCrLf & strConflicts
MsgBox strMsg, vbInformation + vbOKOnly, "Check Conflicts"
End Sub
- その後、現在のウィンドウを終了できます。
- 次に、通常どおり、このマクロをクイックアクセスツールバーに追加します。
- 後で、Outlookでマクロが有効になっていることも確認する必要があります。 「マクロ設定」に移動して確認してください。
- 最後に、試してみることができます。
- まず、「別の予定との競合」プロンプトが表示される予定を選択または開きます。
- 次に、クイックアクセスツールバーのマクロボタンをクリックします。
- すぐに、次のスクリーンショットのように、競合するすべての予定を一覧表示するメッセージが表示されます。
Outlookが破損する前の重要な注意事項
Outlookはクラッシュやエラーが発生しやすいことが知られています。そのため、Outlookの破損に備えておくことが不可欠です。最も重要な対策の一つは、定期的なバックアップです。さらに、強力な専用バックアップツールを用意しておくことをお勧めします。 Outlookの修復 のようなツール DataNumen Outlook Repair.
著者紹介:
Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 mdf回復 と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

