[摘要]基于Excel和VBA開發(fā)的信息系統(tǒng)具有諸多優(yōu)點,越來越引起人們的注意。文章首先對比介紹基于Excel和VBA開發(fā)的信息系統(tǒng)和傳統(tǒng)信息系統(tǒng)的優(yōu)勢和劣勢,隨后從用戶界面設計、數據處理和報表設計三個方面介紹基于Excel和VBA的信息系統(tǒng)在開發(fā)過程中所具有的特點和使用方法。
[關鍵詞]Excel;VBA;信息系統(tǒng);開發(fā)技術
[作者簡介]毛文兵,河南省許昌市地勘二院,河南許昌,461000
[中圖分類號]TP391.13 [文獻標識碼]A [文章編號]1007-7723(2008)11-0029-0002
一、序言
Excel不僅是一種功能齊全的電子表格處理軟件,也是一種操作簡便的數據庫管理工具。VBA(Visual Basic for Application)是為了增強Word、Ex-cel等Office軟件的自動化能力而使用的宏語言。結合Excel數據庫和VBA語言,可以開發(fā)出各類信息系統(tǒng),參考文獻就是一些典型的應用實例。
二、基于Excel和VBA開發(fā)的信息系統(tǒng)的優(yōu)勢和劣勢
(一)優(yōu)勢
由于Excel使用的普及性,人們對Excel各類功能的使用需求也參差不齊。部分用戶需要處理比較復雜的數據,單靠Excel提供的固有功能很難完成其預定任務,這時就需要建立一個信息系統(tǒng)來完成任務了。VBA語言和其他開發(fā)語言一樣,可以提供強大功能開發(fā)任意類型的信息系統(tǒng)。那么利用Excel和VBA開發(fā)的信息系統(tǒng)和傳統(tǒng)的信息系統(tǒng)比較有何種優(yōu)勢呢?總結起來有以下四個方面:
1、Excel數據庫設計簡單,實現容易。Excel是由工作表組成,設計Excel數據庫時,不需要太多的數據庫知識就可完成設計,而傳統(tǒng)的數據庫設計往往需要系統(tǒng)的課程學習才能實現。
2、Excel的用戶眾多,人們對其熟悉程度也高,利用Excel數據庫開發(fā)的系統(tǒng)具有更多的潛在用戶,并且更容易被用戶接受。
3、Excel本身有強大的數據處理功能,基于Excel開發(fā)的信息系統(tǒng)可以更方便地借用這些功能。比如像數據透視表這樣的高級數據分析工具在Excel中比在其他數據庫中更易于使用。
4、和其他數據庫系統(tǒng)相比,Excel能以更多的格式導入和導出數據,且實現起來更容易。
(二)缺點
Excel數據庫,由于不是專業(yè)的數據庫,所以在利用它建立信息系統(tǒng)時,也有其不足之處??偨Y起來也有四點:
1、不能實現復雜的表聯系。在Excel數據庫中,最常用的是單個的工作表或者表單。如果要建立若干個表以及這些表之間的聯系,Excel數據庫就難以實現。
2、表的大小受到限制。Excel受限于工作表的行數和列數,最多能處理256個字段和65535條記錄。
3、數據完整性很難保證。用戶可能會意外地刪除信息、改寫或者改變公式、插入或者刪除行、或者在關閉工作簿時沒能保存改變了的數據。
4、數據安全性不高。Excel在高版本上雖然提高了工作表的保護能力,但相對于專業(yè)的數據庫,其安全性還差得多。
綜上所述,在考慮是否使用基于Excel數據庫來開發(fā)信息系統(tǒng)時,要揚長避短。對于要處理的數據表不太復雜、數據量不太大、對數據的安全性要求不高的系統(tǒng)來說,利用基于Excel數據庫來開發(fā)信息系統(tǒng)是再合適不過了。否則,只能選擇專業(yè)的數據庫和開發(fā)工具來實現信息系統(tǒng)了。
三、基于Excel和VBA的信息系統(tǒng)開發(fā)技術
由于Excel本身就是一個強大的數據處理工具,利用VBA語言在其上建立信息系統(tǒng)時,相當于對Excel進行二次開發(fā)。這種二次開發(fā)既與傳統(tǒng)的數據庫信息系統(tǒng)開發(fā)非常相似,又有其獨特的地方。本文著重從技術方面探討與傳統(tǒng)的信息系統(tǒng)開發(fā)的區(qū)別和聯系。
(一)用戶界面設計
Excel是以工作表的形式展現給用戶的,所以工作表可以作為用戶界面呈現給用戶。但Excel工作表作為在顯示、鼠標操作等方面都不能很好地滿足用戶界面的要求,在使用Excel工作表作為界面時,需要對工作表中的顯示內容和鼠標操作進行預處理,才能創(chuàng)建個性化用戶界面。另外,Excel也提供了其他應用程序開發(fā)工具都包含的窗體界面——用戶窗體(UserForm)。
1、Excel工作表界面
工作表是由若干個單元格組成的。Excel默認的情況下,每個單元格都可以進行輸入和編輯,當用戶用鼠標點擊工作表的每個位置時,該處的單元格就會被選中。這種工作表設計是專門用于數據處理的,對于利用它進行信息系統(tǒng)的界面設計則不適合,需要進行兩個方面的改造:一是工作表的顯示問題。作為信息系統(tǒng)的界面,用戶不希望看到工作表中的網格線、行號列標、工作表標簽等,有時可能還不希望看到Excel軟件提供的編輯欄、狀態(tài)欄、工具欄等。二是工作表的響應問題。默認情況下,鼠標在工作表上任意位置進行單擊,工作表都會給予響應,這不是用戶界面所需要的。另外,作為界面一旦設計完成,不能讓用戶在工作表上進行行列刪除等操作。
要使用Excel工作表作為用戶界面就要先解決上述兩個問題。一般情況下,利用Excel工作表進行界面設計的過程如圖1所示:
Excel的窗體工具欄提供了常見的一些控件,可進行界面設計。Excel工作表的單元格還為控件的大小、排列位置等設置提供了參考。
顯示設置主要解決的問題有Excel界面提供的工具欄、編輯欄的顯示設置和工作表中行號列標、網格線等的顯示設置問題。顯示設置可以在菜單“工具”→“選項”中設置完成。
保護設置解決對于工作表的各類響應問題,保護工作表界面不讓用戶隨意更改。主要完成的操作有兩類:一類是鼠標的響應情況;另外一類是工作表的操作情況,如設置單元格格式、插入刪除行列等。
這里值得注意的是,Excel中控件的響應不像其他應用程序通過事件來響應,而是通過“宏”來實現。通過指定宏,可為控件指定一個預先定義的宏,或者新建一個宏來完成事件的功能。
2、用戶窗體界面
工作表界面鋪滿整個屏幕,對于一些對話框之類的界面,利用Excel工作表界面就不合適了。Excel還給開發(fā)者提供了與其他應用程序類似的用戶窗體來實現這類界面的Kit。
Excel提供了Visual Basic編輯器,在編輯器界面中,開發(fā)者可以像開發(fā)其他類型的應用程序一樣來開發(fā)VBA程序。在用戶窗體中,也像設計其他應用程序一樣來設計Excel的窗體。用戶窗體的調用利用窗體的show方法實現。
(二)數據處理
Excel中的數據處理主要通過函數和VBA實現。Excel提供的函數功能非常強大,通過函數的使用和嵌套使用可以部分完成計算機語言的功能,這也是Excel所具有的獨特功能。VBA語言是函數功能的進一步擴展,可以幫助用戶完成更強更復雜的功能。
1、Excel提供的函數
Excel提供的函數一共有11類,分別是數據庫函數、日期與時間函數、工程函數、財務函數、信息函數、邏輯函數、查詢和引用函數、數學和三角函數、統(tǒng)計函數、文本函數以及用戶自定義函數。通過這些函數及其嵌套函數可以完成很多功能。最重要的是,通過簡單的函數調用就可以完成其他應用程序需要大量代碼才能完成的任務,這是其他應用程序所無法比擬的。
2、VBA語言處理功能
VBA與VB都源于Basic,所包含的對象層次也相同,即VB所支持對象的多數屬性和方法,VBA也支持,只是在事件或屬性的特定名稱方面稍有差異。VBA和VB的開發(fā)環(huán)境也非常相似,開發(fā)者在利用VBA開發(fā)時,可以參考VB的各類開發(fā)技術和方法,這里就不再贅述了。
(三)報表生成
報表設計任務在各類信息系統(tǒng)中占用相當大的工作量,其設計和開發(fā)方法一般都受到廣泛的重視?;贓xcel和VBA系統(tǒng)生成的報表比起普通的開發(fā)工具所生成的報表有著眾多的優(yōu)勢,所以有不少的研究人員已經對此進行了研究。文獻就是一些研究成果。
普通的開發(fā)工具,如VB、VC等,設計的報表系統(tǒng)具有的局限性主要有可維護性差、表格線設計煩瑣、數據分析能力弱等弱點。而Excel作為常用的電子表格軟件,不僅為報表系統(tǒng)所需要的界面表現形式多樣化與用戶可設計性提供了很好的解決方案,,而且Excel內部提供了的大量函數,以及第三方提供的可加載宏(Add-in),為基于Excel的模型分析提供有豐富的基礎。另外,Excel通過VBA可以方便地調用Word字處理軟件,生成Word報表。Excel的這些功能為報表的生成提供了簡捷的方法和豐富內容,這是其他軟件無法比擬的。
四、總結與展望
基于Excel和VBA的信息系統(tǒng)有其獨特的特點,這使其應用領域和應用范圍越來越廣。Excel使用的廣泛性也使其開發(fā)人員越來越多,特別是對于廣大的Excel使用者,將Excel的功能和專業(yè)領域知識有機地融合在一起,極大地發(fā)揮了Excel信息系統(tǒng)的功能。
隨著Microsoft公司對Excel功能的不斷擴展及其對VBA語言的不斷完善,基于Excel和VBA的信息系統(tǒng)開發(fā)會更加方便,從事這方面開發(fā)的研究人員也會更加得心應手。