以下步驟(改編自優秀的文章http://www.cpearson.com/excel/AppEvent.aspx)是「最低限度可行」的方式來做你所需要的。
- 打開一個新的工作簿
- 打開VB編輯
- 插入一個類模塊;在屬性窗口中設置類名
CExcelEvents
- 添加以下代碼類模塊中:
Private WithEvents App As Application
Private Sub Class_Initialize()
Set App = Application
MsgBox "initialized the class!"
End Sub
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
MsgBox "New Workbook was opened: " & Wb.Name
End Sub
5. 右鍵單擊Project Explorer中的「的ThisWorkbook」元素,並選擇 「查看代碼」
6. 添加以下代碼:
Private XLApp As CExcelEvents
Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub
這將創建一個實例的CExcelEvents類,並在加載addIn時「打開事件處理」。
最後,將文件保存爲myEvents.xlam
在加載項的存儲位置 - 這取決於你的機器上...
如果現在關閉的文件,並添加插件(再次,取決於您的環境無論是來自開發人員功能區還是工具菜單),您應該看到一個對話框,顯示「初始化課程!」。這顯示addIn已正確安裝並正在工作。
現在,當您打開一個工作簿時,將會出現另一個消息框:名稱爲「New Workbook was opened:」。
顯然,你會想擺脫的消息框,並把該做任何你想做的事情(例如,登錄簿的名稱到一個文件)的一些「有用」的代碼。這聽起來像你不需要後者的幫助 - 如果我錯了,請讓我知道。
我想你會在http://stackoverflow.com/q/8419728/1967396看到你的答案,特別是鏈接到http://www.cpearson.com/excel/AppEvent.aspx哪個介紹如何做到這一點。 – Floris
是所有這些工作表宏啓用?如果他們不是,那麼你打算如何運行一個事件 –
@我知道,如果你有一個運行應用程序事件的加載項,並且它監視所有「工作簿打開」事件並記錄它們,那麼單個工作表不需要啓用。 – Floris