すべてのワークブック (マクロの有無にかかわらず) で Open イベントと Save イベントをキャッチしたいだけです。私が理解しているように、 Event 対応のコードを含む AddIn が必要です。インターネットで多くの例を見つけました。次のように、stackoverflow の例を学びました: How can an Excel Add-In Respond to events in any worksheet? しかし、それはうまくいきません。誰も問題を報告しません。だから、私はここで単純な間違いをしていると思います。たとえば、次のアドインがあります。
クラス モジュール (ExcelEventCapture) - プライベート:
Option Explicit
Public WithEvents ExcelApp As Excel.Application
Private Sub Class_Initialize()
Set ExcelApp = New Excel.Application
ExcelApp.EnableEvents = True
MsgBox "ExcelApp OK"
End Sub
Private Sub ExcelApp_NewWorkbook(ByVal Wb As Workbook)
Wb.Close savechanges:=False
MsgBox "Sorry - you can't create workbooks in this system!"
End Sub
ThisWorkbook に配置されたこのコード:
Option Explicit
Private ExcelEvents As ExcelEventCapture
Private Sub Workbook_Open()
Set ExcelEvents = New ExcelEventCapture
MsgBox "ExcelEvents OK"
End Sub
このコードを保存/変更するたびに、アドインマネージャーを使用してこのアドインをオフ/オンに切り替えます。電源を入れると「ExcelApp OK」「ExcelEvents OK」と表示されました。しかし、新しいワークブックを作成しても、イベントは発生しません。その他のイベントも処理されません。2007/2010 Excel で試してみます。結果は同じです。助けてください。