魏明銳 姚興平
(1.安徽農(nóng)業(yè)大學(xué)經(jīng)濟(jì)技術(shù)學(xué)院,安徽 合肥 230011;2.安徽涉外經(jīng)濟(jì)職業(yè)學(xué)院,安徽 合肥 230011)
基于Excel VBA的高校數(shù)據(jù)處理系統(tǒng)模型構(gòu)建
魏明銳1,2姚興平1,2
(1.安徽農(nóng)業(yè)大學(xué)經(jīng)濟(jì)技術(shù)學(xué)院,安徽 合肥 230011;2.安徽涉外經(jīng)濟(jì)職業(yè)學(xué)院,安徽 合肥 230011)
Excel是目前普遍采用的數(shù)據(jù)處理軟件,因其強(qiáng)大的高校多平臺系統(tǒng)數(shù)據(jù)兼容處理能力而備受高校工作者好評。在日常工作中,為便于數(shù)據(jù)的常態(tài)化處理,經(jīng)常會使用Excel VBA進(jìn)行數(shù)據(jù)自動化數(shù)據(jù)處理。而采用Excel VBA如何構(gòu)建模塊化系統(tǒng),使其能夠?qū)?shù)據(jù)進(jìn)行流程化處理是本文主要探討的問題。
數(shù)據(jù)處理;系統(tǒng)模型;Excel VBA
伴隨著“互聯(lián)網(wǎng)+”在教育領(lǐng)域的快速發(fā)展,當(dāng)前高校教學(xué)管理部門的信息化水平正在逐年提高。各級各部門對于數(shù)據(jù)分析應(yīng)用系統(tǒng)正大批量投入使用。但目前實(shí)際工作中的系統(tǒng)應(yīng)用狀況是,各高校教學(xué)管理部門和教輔部門一般都設(shè)計(jì)和建設(shè)了屬于機(jī)構(gòu)、業(yè)務(wù)本身的應(yīng)用、流程以及數(shù)據(jù)的信息處理系統(tǒng),各系統(tǒng)相互獨(dú)立、異構(gòu),涵蓋各自的業(yè)務(wù)內(nèi)容,系統(tǒng)設(shè)計(jì)建設(shè)的時(shí)期不同、業(yè)務(wù)模式不同,信息化建設(shè)缺乏有效的總體規(guī)劃,重復(fù)建設(shè)嚴(yán)重;同時(shí)又缺乏統(tǒng)一的設(shè)計(jì)標(biāo)準(zhǔn),大多數(shù)系統(tǒng)都是由不同的廠商在不同的平臺上,使用不同的語言進(jìn)行開發(fā)的,信息交互共享困難,存在大量的信息孤島和流程孤島。為了有效整合分散異構(gòu)的信息資源,消除“信息孤島”現(xiàn)象,解決數(shù)據(jù)重復(fù)處理,提高高校教學(xué)管理部門的信息化水平,研究開發(fā)一款應(yīng)用于實(shí)際工作中且能將各類系統(tǒng)進(jìn)行數(shù)據(jù)共享、快速處理、易于升級的開源化系統(tǒng)的基礎(chǔ)模型是本文解決的主要問題。
Excel是微軟office辦公軟件家族成員之一,其強(qiáng)大的數(shù)據(jù)統(tǒng)計(jì)處理,特別是函數(shù)運(yùn)算功能,使其在各個(gè)領(lǐng)域成為目前常用的數(shù)據(jù)處理軟件。但是,對于大部分用戶也僅僅使用Excel簡單的菜單命令來實(shí)現(xiàn)數(shù)據(jù)常用處理,很多高級功能并沒有使用到。特別是現(xiàn)在辦公系統(tǒng)越來越多,從各大系統(tǒng)中導(dǎo)出的數(shù)據(jù)表五花八門,要從大量的數(shù)據(jù)表中獲取到需要的數(shù)據(jù)往往是一項(xiàng)比較繁瑣的工作,特別是一些需要對數(shù)據(jù)進(jìn)行特殊處理的常態(tài)化工作來說,僅僅使用簡單的Excel菜單操作是比較難以實(shí)現(xiàn)的。在使用Excel強(qiáng)大的函數(shù)功能來解決此類問題時(shí),伴隨著數(shù)據(jù)量的增大,數(shù)據(jù)處理步驟的增加,數(shù)據(jù)處理工作就變得費(fèi)工費(fèi)時(shí),數(shù)據(jù)的準(zhǔn)確性都很難得到保證。其實(shí),在Excel中如使用VBA編程功能,以上問題將輕松解決。
VBA(Visual Basic for Application),是用于開發(fā)的應(yīng)用程序語言。同時(shí)VBA也并不是一個(gè)獨(dú)立存在的程序設(shè)計(jì)語言,它必須基于一個(gè)主應(yīng)用程序[1]。例如,基于微軟Excel平臺的VBA通過控制Excel中具有的對象庫(特殊命令集)來實(shí)現(xiàn)其具有的功能。同時(shí),由于VBA本身不是其他應(yīng)用程序的一部分,可獨(dú)立在其他應(yīng)用程序外通過相應(yīng)的對象來控制其他應(yīng)用程序。從理論上講,只要一個(gè)應(yīng)用程序能夠提供一個(gè)VBA可控的對象庫,那么我們即可通過VBA實(shí)現(xiàn)該程序的自動化操作,如圖1所示。
圖1 VBA控制應(yīng)用程序流程
目前高校數(shù)據(jù)業(yè)務(wù)處理工作時(shí)大多采用office作為主要的數(shù)據(jù)處理工具。其主要原因一是數(shù)據(jù)表通用性強(qiáng);二是操作簡單;三是操作環(huán)境兼容性高。而office辦公套件基本都有VBA可控的對象庫,特別是數(shù)據(jù)處理軟件Excel更是較早具有VBA功能的軟件。同時(shí)VBA相比C、JAVA、Delphi等語言更簡單易學(xué),甚至可以通過Excel宏錄制功能錄制代碼,再在此基礎(chǔ)上修改成通用型功能代碼。因此,高校的數(shù)據(jù)處理,除一部分使用專業(yè)的數(shù)據(jù)處理系統(tǒng),其他大量的臨時(shí)性或具有不確定性繁雜數(shù)據(jù)工作,高校工作者基本上都是通過構(gòu)建簡易VBA代碼解決實(shí)際工作中遇到的問題,如通過Excel VBA編譯具有自動運(yùn)算功能的財(cái)務(wù)數(shù)據(jù)、人事檔案數(shù)據(jù)、教師工作量數(shù)據(jù)等相對獨(dú)立的業(yè)務(wù)表格處理系統(tǒng),這些專業(yè)性較強(qiáng)的微系統(tǒng)讓業(yè)務(wù)數(shù)據(jù)處理簡單化、高效化。但這些構(gòu)建的系統(tǒng)模塊既獨(dú)立又單一,不具有代表性和通用性。因此,通過歸納總結(jié)高校數(shù)據(jù)處理工作的共性,梳理數(shù)據(jù)間的聯(lián)系,構(gòu)建適用于高校數(shù)據(jù)處理特點(diǎn)的系統(tǒng)模型勢在必行。
高校工作具有較高的流程化和階段性,且工作模式較為單一。搞清楚工作流程和數(shù)據(jù)處理的要求,將為我們開發(fā)數(shù)據(jù)處理系統(tǒng)帶來了很大的便利。高校數(shù)據(jù)處理系統(tǒng)也應(yīng)有其他行業(yè)數(shù)據(jù)處理系統(tǒng)所具有的特點(diǎn):一是必要的安全性,保證一部分?jǐn)?shù)據(jù)能夠具有一定的保密性;二是數(shù)據(jù)能夠快速導(dǎo)入、導(dǎo)出;三是數(shù)據(jù)處理模塊要簡單高效且易重構(gòu);四是解決數(shù)據(jù)的存儲等問題。結(jié)合以上幾點(diǎn)可對數(shù)據(jù)處理系統(tǒng)針對系統(tǒng)登錄、數(shù)據(jù)導(dǎo)入導(dǎo)出、數(shù)據(jù)加工處理和數(shù)據(jù)的存儲等方面進(jìn)行模塊化設(shè)計(jì),如圖2所示。
圖2 數(shù)據(jù)處理系統(tǒng)架構(gòu)圖
登錄窗口的設(shè)計(jì)按照系統(tǒng)設(shè)計(jì)基本要求,要有“登錄戶名”、“登錄密碼”等窗體要素,如圖3所示。
圖3 Excel VBA構(gòu)建系統(tǒng)登錄窗口設(shè)計(jì)
通過Workbook_open事件自動Load登錄窗體。如輸入的用戶名和密碼準(zhǔn)確無誤,則通過調(diào)整表格Visible屬性來控制表格是否可用;否則Unload登錄窗體,保存并關(guān)閉打開的工作簿。此處為了防止出現(xiàn)代碼執(zhí)行時(shí)窗口跳轉(zhuǎn)等閃屏的問題,可通過添加Application.ScreenUpdating=False語句,關(guān)閉屏幕刷新,屏蔽代碼運(yùn)行過程中的窗口跳轉(zhuǎn)。
(1)數(shù)據(jù)的導(dǎo)入
數(shù)據(jù)的導(dǎo)入是系統(tǒng)數(shù)據(jù)快速處理的前提條件,通過VBA工程設(shè)計(jì)導(dǎo)入工具窗體,如圖4所示。通過窗體添加CommonDialog控件實(shí)現(xiàn)文件的打開、另存為等功能。需要注意的是,雖然CommonDialog控件在Visual Basic和Microsoft Windows動態(tài)連接庫Commdlg.dll例程之間提供了接口。但是為了使用該控件創(chuàng)建對話框,必須要求Commdlg.dll在Microsoft WindowsSystem目錄下,所以要求用戶提前安裝該動態(tài)鏈接庫文件,否則該功能無效。
圖4 數(shù)據(jù)導(dǎo)入窗體設(shè)計(jì)
(2)數(shù)據(jù)的導(dǎo)出
對于數(shù)據(jù)的導(dǎo)出,可通過GetSaveAsFilename語句執(zhí)行文件另存為工作。當(dāng)然在Excel VBA環(huán)境下,該語句通過Application來調(diào)用,如圖5所示。
數(shù)據(jù)處理模塊是數(shù)據(jù)處理系統(tǒng)中的核心模塊。模塊設(shè)計(jì)的總體思路是把握數(shù)據(jù)處理的特點(diǎn)。對于高校數(shù)據(jù)處理工作,主要包括對數(shù)據(jù)進(jìn)行排序、函數(shù)運(yùn)算、數(shù)據(jù)統(tǒng)計(jì)匯總、格式調(diào)整等,如圖6所示。通過判斷CheckBox的Visible屬性,當(dāng)屬性為True時(shí)執(zhí)行相關(guān)處理語句,反之為False時(shí)跳過該行語句,并判斷執(zhí)行下一個(gè)CheckBox的Visible屬性,條件滿足時(shí)執(zhí)行相應(yīng)代碼。
圖5 數(shù)據(jù)導(dǎo)出另存為對話框調(diào)用
圖6 數(shù)據(jù)處理工具設(shè)計(jì)
系統(tǒng)數(shù)據(jù)的保存是保障處理數(shù)據(jù)安全性的關(guān)鍵。對于單機(jī)版系統(tǒng)的數(shù)據(jù)保存,可通過建立獨(dú)立數(shù)據(jù)保存數(shù)據(jù)庫表,通過數(shù)組代碼批量將處理后的數(shù)據(jù)轉(zhuǎn)移保存至獨(dú)立的數(shù)據(jù)庫表中;而對于網(wǎng)絡(luò)數(shù)據(jù)庫版系統(tǒng)則需要建立網(wǎng)絡(luò)數(shù)據(jù)庫將數(shù)據(jù)保存至服務(wù)器數(shù)據(jù)庫中。
通過VBA編程實(shí)現(xiàn)用戶登錄驗(yàn)證,登錄模塊判斷該用戶類別,自動進(jìn)入相應(yīng)數(shù)據(jù)處理子系統(tǒng)。用戶通過數(shù)據(jù)導(dǎo)入工具將需要處理的數(shù)據(jù)快速導(dǎo)入;再通過數(shù)據(jù)處理工具對系統(tǒng)數(shù)據(jù)進(jìn)行業(yè)務(wù)性處理。對于處理完成的數(shù)據(jù),用戶可以選擇將數(shù)據(jù)保存到數(shù)據(jù)表中或是導(dǎo)出他用。整個(gè)數(shù)據(jù)處理流程僅需依據(jù)系統(tǒng)導(dǎo)航提示,點(diǎn)擊系統(tǒng)相應(yīng)的選項(xiàng)或按鈕即可實(shí)現(xiàn)原來需要紛繁復(fù)雜的函數(shù)重復(fù)編碼及菜單命令操作才能實(shí)現(xiàn)的高級功能。使數(shù)據(jù)處理流程化,工作簡單高效。同時(shí),由于VBA與VB編程方法類似,對于高校工作者學(xué)習(xí)VBA編程實(shí)現(xiàn)系統(tǒng)二次開發(fā)擴(kuò)展也是非常容易入手的,系統(tǒng)開發(fā)也能實(shí)現(xiàn)零成本和簡易化。
[1]V.K工作室.Excel2000 VBA入門[M].北京:科學(xué)出版社,2001.
Establishment of College Data Processing System Model Based on Excel VBA
Wei Mingrui1,2Yao Xingping1,2
(1.Economic and Technical College ofAnhuiAgricultural University,Hefei 230011,Anhui;2.Anhui International Economic College,Hefei 230011,Anhui)
Excel is a data processing software in general use.It is well
by college workers because of its ability to handle the data of multi-platform system data.In daily work,in order to facilitate the normalization of data processing,Excel VBA is often used in automated data processing.This paper mainly discussed how to build a modular system with Excel VBA to process the data in workflow.
data processing;system model;Excel VBA
TP319
A
1008-6609(2017)10-0029-03
魏明銳(1983-),男,安徽長豐人,碩士,講師,研究方向?yàn)橛?jì)算機(jī)技術(shù)、電子商務(wù)。
安徽省高校自然科學(xué)研究重點(diǎn)項(xiàng)目:基于ExcelVBA模塊化高校跨平臺數(shù)據(jù)共享處理系統(tǒng)開源化模型的設(shè)計(jì)研究,項(xiàng)目編號:KJ2017A889。