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