Excel中的VBA程序設(shè)計論文
摘 要:在日常辦公中,就數(shù)據(jù)處理這一塊,相信大部分人首選的軟件都是微軟的Excel。不可否認Excel的數(shù)據(jù)處理能力確實強大,不愧為微軟的經(jīng)典之作,但是,隨著各行各業(yè)的數(shù)字化,對數(shù)據(jù)的處理能力要求也越來越高,明顯Excel力不從心,不過VBA的出現(xiàn)使得Excel重新強大起來。
關(guān)鍵詞:Excel;VBA;數(shù)據(jù)處理;程序設(shè)計
引言
在這個快節(jié)奏的社會,我們對數(shù)據(jù)的處理也更要求高效快捷,VBA為我們提供這個途徑。VBA是微軟提供的一種統(tǒng)一的應(yīng)用程序自動化語言(Visual Basic For Application),它并不是只存在于Excel中,事實上在微軟的Office軟件中都帶有VBA。由于VBA在數(shù)據(jù)處理上的強大優(yōu)勢,使的Excel成為它的第一個附體。另外,微軟也提供了VBA的開發(fā)環(huán)境IDE,這樣VBA可以不依附在其它軟件中,可以獨立的開發(fā)。而VBA強大的另一個方面在于它可以將已有的數(shù)據(jù)和開發(fā)的客戶端程序一起包裝,整合使用。
1.VBA的工作原理和開發(fā)環(huán)境
VBA技術(shù)說到底是一種高級的編程技術(shù),通過編寫代碼完成某個應(yīng)用程序的特定的功能。對于VBA而言,他的對象就是微軟公司Office中的各個應(yīng)用程序。每一個應(yīng)用程序都有自己特定的Application對象。具體到Office Excel,數(shù)據(jù)表對象和圖形圖像對象是它的主要對象。
1.1工作原理
首先,作為一個編程工具VBA需要一個工作平臺,Excel恰好提供了這平臺,VBA利用這個平臺可以將自己的各種功能發(fā)揮的淋漓盡致,使Excel數(shù)據(jù)處理能力更強大,也更加靈活。從使用的簡易性看,VBA依然是VB的面向?qū)ο蟮某绦蛟O(shè)計,對開發(fā)者的編程技術(shù)要求并不高,VBA也是比較新的.宏語言,使得它的使用更加簡單。對于VBA與Excel以及VBA與VB的關(guān)系和工作原理可以通過下邊的圖來解釋。
原理圖1
VBA為一個編程工具,可以產(chǎn)生VBA代碼,這是增強應(yīng)用程序的實際代碼。同時,VBA服務(wù)實際對象是Excel的應(yīng)用程序。如果沒有VBA這個工具,就不能產(chǎn)生服務(wù)代碼,如果沒有代碼也談不上增強Excel功能。沒有VBA,Excel也不能找到自己需要的代碼,因此我們說是VBA給了代碼和Excel合作的機會,VBA就是聯(lián)系兩者的橋梁。其工作過程可以簡單理解為:客戶把Excel需要加強的功能給開發(fā)人員,設(shè)計者對此設(shè)計出Excel的應(yīng)用程序,這個應(yīng)用程序就是VBA的對象,進而設(shè)計者利用VBA,編寫需要的代碼,經(jīng)過編譯產(chǎn)生Excel所需要的VBA代碼,最后,VBA將已有的應(yīng)用程序的代碼和VBA代碼進行封裝,生成滿足客戶需要的“加強版”Excel。
1.2開發(fā)環(huán)境
前面已經(jīng)提到VBA實際上可以認為是VB的子集合,這樣它的運行環(huán)境也就很好理解,就是VB的運行的IDE環(huán)境,都是基于Basic。它們包含的對象以及對象的屬性和方法都是相同的。兩者的不同在于它們的運行平臺不同,相對來說VB的運行平臺更廣,VBA則只是運行在Excel中,但也因此VBA可以利用Excel的數(shù)據(jù)處理功能,包括報表、數(shù)據(jù)統(tǒng)計、圖形分析等。對于開發(fā)人員來說很有必要認識清楚VB和VBA的區(qū)別,在此列出以下幾條:1. 利用VB開發(fā)的Windows應(yīng)用程序,它的代碼部分最后必須是生成機器碼,而VBA開發(fā)的代碼并不直接生成機器碼,而是在產(chǎn)生VB的代碼后就停止,其他工作就不在屬于VBA,這是VBA的宏語言所決定;2. 在獨立性方面VBA明顯不如VB,實際上VB有自己的開發(fā)環(huán)境,而VBA必須依附于某個應(yīng)用程序,Excel就是VBA很好的“宿主”;3. VBA雖然有運行平臺的限制,但這也是它的優(yōu)勢,可以利用平臺已有的功能加強自己而且可以簡化開發(fā)周期,這是VB所不具有的。盡管有這樣或那樣的不同,但是由于VB和VBA在構(gòu)架上是相同的所以對開發(fā)者來說還是很簡單的,而且在程序的移植方面也是比較簡單的。
2.VBA的具體開發(fā)流程
對于任何一種編程工具,在使用之前我必須了解它的運行環(huán)境和它的基本語法,這是開發(fā)的兩個基礎(chǔ)。同樣,VBA也不例外,首先,VBA運行在IDE下,那么我們就必須了解在這個環(huán)境下如何創(chuàng)建工程,如何創(chuàng)建對象(面向?qū)ο蟮某绦蛟O(shè)計必須有這一步),以及是否需要設(shè)計窗體;其次,對VBA基本的語法要熟悉,對于有使用VB經(jīng)驗的開發(fā)者是很簡單的。VBA比較特殊的地方就是宏,其實宏就是按照一定順序執(zhí)行的指令,或者說是指令集,當(dāng)我們重復(fù)性操作的時候,就可以利用宏,不需要每次操作都執(zhí)行各種指令,一個宏就解決問題。為了方便理解和加深記憶,下面我舉出一個自己制作COM組件供Excel調(diào)用的實例。本實例比較簡單沒有涉及窗體設(shè)計和圖形設(shè)計。
ExcelApp.dll
//對象聲明
Private xlsApp As New Excel.Application
//打開工作簿函數(shù)
Public Sub Opening()
xlsApp.Workbooks.Add
xlsApp.Visible—True
End Sub
//寫入工作簿函數(shù)
Public Sub Writing(By Val column As Byte,By Val row As Byte,By Val data)
xlsApp.Cells(c,r).FormulaRlCl=data
3.結(jié)束語
VBA的進入使諸如Excel等Office軟件的功能更加強大,同時VBA語法簡單,可移植性強,對開發(fā)人員的要求也不高,所以,對VBA的進一步研究和開發(fā)利用勢在必行,尤其它和Access以及SQL的結(jié)合更是研發(fā)的重點。
參考文獻:
趙全斌.Excel 工程應(yīng)用【M】.北京:清華大學(xué)出版社,2009.
【Excel中的VBA程序設(shè)計論文】相關(guān)文章: