Outlook アラートが表示される前にプログラムで無視することができません。
Private Sub Application_Reminder(ByVal Item As Object)
Dim objRem As Reminder
Dim objRems As Reminders
If Item.Subject = "TESTING" Then
'downloadAndSendSpreadReport
Set objRems = Application.Reminders
i = 0
For Each objRem In objRems
i = i + 1
If objRem.Caption = "TESTING" Then
objRems.Remove i
If objRem.IsVisible Then
objRem.Dismiss
End If
Exit For
End If
Next objRem
Item.ReminderSet = False
Item.Delete
'Item.Dismiss
End If
End Sub
ユーザーがリマインダーを手動で閉じる必要なく、この予定アイテムをいくつかのマクロのトリガーとして使用したいと考えています。
このイベントがトリガーされると、リマインダー項目が表示されないため、閉じることができないようです
リマインダー セットから削除しようとしましたが、カレンダーからイベント全体が削除されたようです。また、ASCII ではない STRANGE TITLE リマインダーも表示されます。
予定アイテムのreminderSetプロパティをfalseに設定しようとしましたが、リマインダー プロパティがまだポップアップします。
そのため、a) 自動的にポップする前にリマインダーを閉じる/ b) 方法を探しています。リマインダーが自動的にポップされた後、リマインダーを閉じます....または、Outlook でスケジュールされた MACRO を実行するための回避策。(Windows や VBS でスケジュールされたジョブを使用する権限がないことに注意してください。)
アップデート:
今、私は次のコードを持っています。リマインダーは削除されますが、「予定/リマインダーはありません」のようなキャプションが表示されたリマインダー ウィンドウが表示されます。
beforeReminderShow イベントは、Reminder オブジェクトが isVisible = true であるという意味で役立ちます。
だから私は却下することができます..しかし、リマインダーウィンドウは、イベントが0であってもポップアップし続けます。
Private WithEvents olRemind As Outlook.Reminders
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
Set objRems = Application.Reminders
For Each objRem In objRems
If objRem.Caption = "TESTING" Then
If objRem.IsVisible Then
objRem.Dismiss
End If
Exit For
End If
Next objRem
End Sub
[解決済み] - 最終的な編集
実行可能な最終的な解決策 (「ThisOutlookSession」モジュールに配置しました)。これが他の人に役立つことを願っています。
' declare this object withEvents displaying all the events
Private WithEvents olRemind As Outlook.Reminders
Private Sub Application_Reminder(ByVal Item As Object)
Set olRemind = Outlook.Reminders
' RUN OTHER MACRO HERE
End Sub
Private Sub olRemind_BeforeReminderShow(Cancel As Boolean)
For Each objRem In olRemind
If objRem.Caption = "TESTING" Then
If objRem.IsVisible Then
objRem.Dismiss
Cancel = True
End If
Exit For
End If
Next objRem
End Sub