VBA在限定Excel工作表用戶按鈕中的應用

學識都 人氣:1.99W

摘 要 通過研究VBE及其下層對象的訪問方法,本文詳細地探討了按鈕過程的代碼控制技術,從而實現了Excel測試軟件中工作表用戶按鈕的執行限定。

VBA在限定Excel工作表用戶按鈕中的應用


關鍵詞 按鈕過程 VBE 下層對象 代碼限定

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