一個(gè)最常見(jiàn)的被監(jiān)控事件是工作簿的Open事件。當(dāng)工作簿(或加載項(xiàng))打開(kāi)時(shí),該事件被觸發(fā),執(zhí)行Workbook_Open過(guò)程。Workbook_Open過(guò)程功能非常多,通常用于完成以下任務(wù):
●顯示歡迎信息。
●打開(kāi)其他工作簿。
●激活特定的工作表。
●確保符合一定的條件。例如,一個(gè)工作簿也許需要安裝特殊的加載項(xiàng)。
下面是關(guān)于Workbook_Open過(guò)程的一個(gè)簡(jiǎn)單示例。它使用VBA的Weekday函數(shù)確定星期幾。如果是星期五,將顯示一個(gè)信息框提醒用戶執(zhí)行文件備份。如果不是星期五,不顯示任何信息。
private Sub Workbook_Open()
If Weekday(Now)=6 Then
Msg="請(qǐng)執(zhí)行文件備份"
MsgBox Msg, vbInformation
End If
End Sub
遺憾的是,VBA對(duì)于Excel2007的功能區(qū)束手無(wú)策。例如,甚至沒(méi)有一種直接的方法去激活一個(gè)特定的功能區(qū)選項(xiàng)卡。下面的例子使用SendKeys聲明模擬“按鍵”。在該例子中,它發(fā)送了快捷鍵Alt+H,該鍵是Excel2007的“鍵提示”,相當(dāng)于激活功能區(qū)的“開(kāi)始”選項(xiàng)卡。按時(shí)鍵從功能區(qū)中移出鍵提示字母。
Private Sub Workbook_open()
Application.SendKeys ("%h(F6)")
End Sub
下面的例子是當(dāng)工作簿打開(kāi)時(shí),執(zhí)行一系列的動(dòng)作。它最大化Excel窗口,最大化工作簿窗口,激活命名為DataEntry的表,并選中A列第一個(gè)空的單元格。如果不存在DataEntry工作表,則代碼產(chǎn)生錯(cuò)誤信息。
private Sub Workbook_Open()
Application.WindowState = xlMaximized
ActiveWindow.windowState = xlMaximized
Worksheets("DataEntry").Activate
Range("A1").End(xlDown).offset(1,O).Select
End Sub