| 
    
     |  | おはようございます。 
 以下を全てThisWorkbookに記述し、一旦保存後、アドインを作成(名前をつけて保存・形式をxlaにする)。
 ブックを保存する前に、VBAProjectに保護をかけておいた方がいいと思います。
 
 'ここから=================================
 Option Explicit
 Private WithEvents app As Application
 Dim opath As String
 'シート(ログ)に転記
 Private Sub app_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
 If Wb.Name <> ThisWorkbook.Name Then
 Log_Edit Wb.FullName, "Close" '実働部分は別Sub
 End If
 End Sub
 'シート(ログ)に転記
 Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
 If Wb.Name <> ThisWorkbook.Name Then
 Log_Edit Wb.FullName, "Open" '実働部分は別Sub
 End If
 End Sub
 'Open_Close共通処理
 Private Sub Log_Edit(arg1 As String, arg2 As String)
 'arg1:フルパスブック名 arg2:処理状況
 If opath = "" Then opath = TempPATH
 'ファイル名固定
 Open opath & "\Excel_OC.LOG" For Append As #2
 Print #2, arg1; vbTab; Now; vbTab; arg2
 Close #2
 End Sub
 'オープン時のイベント
 Private Sub Workbook_Open()
 With Application.Workbooks
 If .Count = 0 Then .Add
 End With
 '
 Set app = Application
 End Sub
 'TEMPフォルダを取得する関数
 Private Function TempPATH()
 Dim obj1 As Object
 Set obj1 = CreateObject("Scripting.FileSystemObject")
 TempPATH = obj1.GetSpecialFolder(2).Path
 End Function
 'ここまで=================================
 
 ツール→アドインで作成したアドインを組み込めば、起動時に読み込まれ、ブックが開く/閉じるたびに、WindowsのTempフォルダにログが追加されます。
 ファイル名は、Excel_OC.LOG です。
 
 Tempフォルダとは、
 Windows98の場合は、
 C:\Windows\Temp
 2000以降の場合は、
 C:\Documents and Settings\(ユーザー名)\Local Settings\Temp
 
 ユーザーに管理者権限がないとどうなるかは今は試せないので、どなたかお願いします。
 LocalSettingなので大丈夫とは思います。
 
 |  |