OutLookで、送受信の完了を検知したい。
まずはクラスモジュールを作成します。
名前はClass1です。
Dim WithEvents mySync As Outlook.SyncObject
Sub Initialize_handler()
Set mySync = Application.Session.SyncObjects.Item(1)
mySync.Start
End Sub
Private Sub mySync_SyncEnd()
MsgBox "送受信が完了しました"
End Sub
次に標準モジュールで、変数を宣言します。
Public CompleteObj As Object
そしてThisOutlookSession に次のコードを記述します。
Private Sub Application_Startup()
Set CompleteObj = New Class1
Call CompleteObj .Initialize_handler
End Sub
これで送受信を行ったときに、「送受信が完了しました」と表示されます。
が、これだけだと、メールを送信して、受信も行ったときには、検知されません。
次のコードをThisOutlookSession に追加します。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Set CompleteObj = New Class1
Call CompleteObj .Initialize_handler
End Sub
これで送信時も、送受信完了が検知されるようになりました。