エクセルの履歴:outlook

Application.ThisWorkbook で開いているインスタンスを識別する。 開く時にそのIDをKEYにしてfindのIDを辞書に格納する。 閉じる時にそのIDでアウトルックを検索して、終了時刻を記録

Private Sub xlApp_WorkbookOpen(ByVal Wb As Workbook)
    
    If Wb Is Application.ThisWorkbook Then
        Exit Sub
    Else
        Call LogJournal(Wb)
    End If
End Sub

Public Sub LogJournal(Wb As Workbook)
    Const olFolderJournal = 11
    Dim olkApp As Outlook.Application
    Dim fldJournal As Folder
    Dim itmJournal As JournalItem
    '
    Set olkApp = New Outlook.Application 'CreateObject("Outlook.Application")
    Set fldJournal = olkApp.Session.GetDefaultFolder(olFolderJournal)
    '
    Set itmJournal = fldJournal.Items.Add
    With itmJournal
        .Subject = Wb.Name
        .Start = Now
        .Body = Wb.FullName
        .End = DateAdd("m", 1, Now)
        .Save
    End With
End Sub
/* -----codeの行番号----- */