VBA在限定Excel工作表用戶按鈕中的應用
摘 要 通過研究VBE及其下層對象的訪問方法,本文詳細地探討了按鈕過程的代碼控制技術,從而實現(xiàn)了Excel測試軟件中工作表用戶按鈕的執(zhí)行限定。
關鍵詞 按鈕過程 VBE 下層對象 代碼限定
1 引言
作為一個優(yōu)秀的表格處理軟件和系統(tǒng)開發(fā)平臺,Excel擁有許多無可替代的優(yōu)勢。基于Excel環(huán)境開發(fā)的管理信息系統(tǒng),具有操作直觀性強、開發(fā)周期短的特點,因此形成了熟悉Excel操作的廣大用戶。為了保證開發(fā)系統(tǒng)的正常渠道流通及著作者利益,必須保護系統(tǒng)的使用權限,本文通過VBA的開發(fā)應用,提出了一種Excel工作表用戶按鈕的限定方法,以此來完善其系統(tǒng)測試軟件的功能。
2 限定按鈕執(zhí)行及其對應過程代碼
限定工作表用戶按鈕的執(zhí)行包括兩個方面的含義,即限定其按鈕對象的顯示及其指定宏過程代碼的有效性,兩者結合在一起加以實現(xiàn),才能起到既展現(xiàn)軟件功能,又真正限制其過分執(zhí)行操作的作用,從而體現(xiàn)對用戶軟件的`測試目的。
2.1 查找按鈕執(zhí)行過程代碼
限定按鈕對象及其執(zhí)行代碼,首要的問題便是獲得其對應的執(zhí)行代碼過程名,并在當前工程的所有代碼模塊中查找其代碼位置。
實踐表明,按鈕對象與圖形圖像和藝術字體一樣,都屬于Shape形狀對象,它們都有其對應的OnAction屬性,代表其被指定的宏過程代碼名稱。需要指出的是窗體類型按鈕對應的宏過程代碼一般位于工程的標準模塊中,而ActiveX按鈕過程代碼則位于工作表代碼模塊中,且其對應的正確執(zhí)行過程名為其按鈕名與相應的事件名的連接串。為了查找某個按鈕對應的過程代碼,需要對VBE(Visual Basic 編輯器)的下層對象VBComponents進行搜索。VBComponents對象代表VBE編輯器下的各個代碼模塊VBComponent。通過對某一VBComponent的下一層對象CodeModule的相關屬性的訪問,可以獲得諸如模塊代碼總行數(shù)等信息,也可以通過其Find方法查找指定內(nèi)容的代碼行。下面即為查找按鈕過程、處理按鈕過程代碼的算法代碼。
SheetsCount = ActiveWorkbook.Worksheets.Count
'對所有工作表中的所有按鈕對象循環(huán)
For i = 1 To SheetsCount
Set MySheet = Worksheets(i)
MySheet.Activate
For Each sh In MySheet.Shapes
sh.Visible = True
sh.Select
'取得選定對象所對應的過程名
MyProname = sh.OnAction
'對于ActiveX按鈕,則只取得其onClick事件過程名
If sh.Type = msoOLEControlObject Then
MyProname = sh.Name
【VBA在限定Excel工作表用戶按鈕中的應用】相關文章: