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