|    | 
     おはようございます。 
 
以下を全て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なので大丈夫とは思います。 
 
 | 
     
    
   |