Excel中的VBA程序設計論文

來源:文萃谷 2.73W

 摘 要:在日常辦公中,就數據處理這一塊,相信大部分人首選的軟件都是微軟的Excel。不可否認Excel的數據處理能力確實強大,不愧為微軟的經典之作,但是,隨着各行各業的數字化,對數據的處理能力要求也越來越高,明顯Excel力不從心,不過VBA的出現使得Excel重新強大起來。

Excel中的VBA程序設計論文

關鍵詞:Excel;VBA;數據處理;程序設計

  引言

在這個快節奏的社會,我們對數據的處理也更要求高效快捷,VBA為我們提供這個途徑。VBA是微軟提供的一種統一的應用程序自動化語言(Visual Basic For Application),它並不是只存在於Excel中,事實上在微軟的Office軟件中都帶有VBA。由於VBA在數據處理上的強大優勢,使的Excel成為它的第一個附體。另外,微軟也提供了VBA的開發環境IDE,這樣VBA可以不依附在其它軟件中,可以獨立的開發。而VBA強大的另一個方面在於它可以將已有的數據和開發的客户端程序一起包裝,整合使用。

  的工作原理和開發環境

VBA技術説到底是一種高級的編程技術,通過編寫代碼完成某個應用程序的特定的功能。對於VBA而言,他的對象就是微軟公司Office中的各個應用程序。每一個應用程序都有自己特定的Application對象。具體到Office Excel,數據表對象和圖形圖像對象是它的主要對象。

1.1工作原理

首先,作為一個編程工具VBA需要一個工作平台,Excel恰好提供了這平台,VBA利用這個平台可以將自己的各種功能發揮的淋漓盡致,使Excel數據處理能力更強大,也更加靈活。從使用的簡易性看,VBA依然是VB的面向對象的程序設計,對開發者的編程技術要求並不高,VBA也是比較新的宏語言,使得它的使用更加簡單。對於VBA與Excel以及VBA與VB的關係和工作原理可以通過下邊的圖來解釋。

原理圖1

VBA為一個編程工具,可以產生VBA代碼,這是增強應用程序的實際代碼。同時,VBA服務實際對象是Excel的應用程序。如果沒有VBA這個工具,就不能產生服務代碼,如果沒有代碼也談不上增強Excel功能。沒有VBA,Excel也不能找到自己需要的代碼,因此我們説是VBA給了代碼和Excel合作的機會,VBA就是聯繫兩者的橋樑。其工作過程可以簡單理解為:客户把Excel需要加強的功能給開發人員,設計者對此設計出Excel的應用程序,這個應用程序就是VBA的對象,進而設計者利用VBA,編寫需要的代碼,經過編譯產生Excel所需要的VBA代碼,最後,VBA將已有的應用程序的代碼和VBA代碼進行封裝,生成滿足客户需要的“加強版”Excel。

1.2開發環境

前面已經提到VBA實際上可以認為是VB的子集合,這樣它的運行環境也就很好理解,就是VB的運行的IDE環境,都是基於Basic。它們包含的對象以及對象的屬性和方法都是相同的。兩者的不同在於它們的運行平台不同,相對來説VB的運行平台更廣,VBA則只是運行在Excel中,但也因此VBA可以利用Excel的數據處理功能,包括報表、數據統計、圖形分析等。對於開發人員來説很有必要認識清楚VB和VBA的區別,在此列出以下幾條:1. 利用VB開發的Windows應用程序,它的代碼部分最後必須是生成機器碼,而VBA開發的代碼並不直接生成機器碼,而是在產生VB的'代碼後就停止,其他工作就不在屬於VBA,這是VBA的宏語言所決定;2. 在獨立性方面VBA明顯不如VB,實際上VB有自己的開發環境,而VBA必須依附於某個應用程序,Excel就是VBA很好的“宿主”;3. VBA雖然有運行平台的限制,但這也是它的優勢,可以利用平台已有的功能加強自己而且可以簡化開發週期,這是VB所不具有的。儘管有這樣或那樣的不同,但是由於VB和VBA在構架上是相同的所以對開發者來説還是很簡單的,而且在程序的移植方面也是比較簡單的。

  的具體開發流程

對於任何一種編程工具,在使用之前我必須瞭解它的運行環境和它的基本語法,這是開發的兩個基礎。同樣,VBA也不例外,首先,VBA運行在IDE下,那麼我們就必須瞭解在這個環境下如何創建工程,如何創建對象(面向對象的程序設計必須有這一步),以及是否需要設計窗體;其次,對VBA基本的語法要熟悉,對於有使用VB經驗的開發者是很簡單的。VBA比較特殊的地方就是宏,其實宏就是按照一定順序執行的指令,或者説是指令集,當我們重複性操作的時候,就可以利用宏,不需要每次操作都執行各種指令,一個宏就解決問題。為了方便理解和加深記憶,下面我舉出一個自己製作COM組件供Excel調用的實例。本實例比較簡單沒有涉及窗體設計和圖形設計。

//對象聲明

Private xlsApp As New Excel.Application

//打開工作簿函數

Public Sub Opening()

xlsApp.Workbooks.Add

xlsApp.Visible—True

End Sub

//寫入工作簿函數

Public Sub Writing(By Val column As Byte,By Val row As Byte,By Val data)

xlsApp.Cells(c,r).FormulaRlCl=data

  3.結束語

VBA的進入使諸如Excel等Office軟件的功能更加強大,同時VBA語法簡單,可移植性強,對開發人員的要求也不高,所以,對VBA的進一步研究和開發利用勢在必行,尤其它和Access以及SQL的結合更是研發的重點。

  參考文獻:

趙全斌.Excel 工程應用【M】.北京:清華大學出版社,2009.

熱門標籤