複製鏈接
請複製以下鏈接發送給好友

VBA

(Visual Basic宏語言)

鎖定
VBA(Visual Basic for Applications)是Visual Basic的一種語言,是在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,特別是Microsoft Office軟件。它也可説是一種應用程式視覺化的 Basic 腳本。
1993年由微軟公司開發的應用程序共享一種通用的自動化語言--------即Visual Basic for Application(VBA),實際上VBA是寄生於VB應用程序的版本。1994年發行的Excel 5.0版本中,即具備了VBA的宏功能。
中文名
Visual Basic宏語言
外文名
Visual Basic for Applications
釋    義
Visual Basic的一種宏語言
功    能
擴展Windows的應用程式功能
發行時間
1993年
語言屬性
應用程序一種通用的自動化語言
簡    稱
VBA
具備功能時間
1994
操作系統
Microsoft Visual,Mac OSX
啓發語言
Visual Basic,QuickBASIC

VBA相關信息

Visual Basic for Applications(簡稱VBA)是新一代標準宏語言,是基於Visual Basic for Windows 發展而來的。它與傳統的宏語言不同,傳統的宏語言不具有高級語言的特徵,沒有面向對象的程序設計概念和方法。而VBA 提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。VBA 易於學習掌握,可以使用宏記錄器記錄用户的各種操作並將其轉換為VBA 程序代碼。這樣用户可以容易地將日常工作轉換為VBA 程序代碼,使工作自動化。 [1] 
VBA是基於 Visual basic發展而來的,與VB具有相似的語言結構。從語言結構上講,VBA是VB的一個子集,它們的語法結構是一樣的。兩者的開發環境也幾乎相同。但是,VB是獨立的開發工具,它不需要依附於任何其他應用程序,它有自己完全獨立的工作環境和編譯、鏈接系統。VBA卻沒有自己獨立的工作環境,它必須依附於某一個主應用程序,VBA專門用於Office的各應用程序中,如Word、 Excel、 Access等。在 Access中,可以通過VBA編寫模塊來滿足特定的需要。 [1] 
正是由於VBA與主應用程序的這種關係,使得它與主程序之間的通信變得簡單而高效。它與 AutoCAD完全共享內存空間,所以執行速度比用C語言開發的ADS應用程序要快很多。 [2] 
VBA提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。它的編寫是以子過程和函數為單位,在 Access中以模塊形式出現。 [1] 
Office取得巨大成功的一個重要原因就是VBA,使用VBA可以完成很多事情,基於Excel、Word的VBA小程序不計其數。Office中的應用程序可以共享VBA語言,如果掌握了在 Excel 2016中使用VBA的方法,那麼在Word、Power Point中使用VBA自然會變得易如反掌。掌握對VBA語言的使用,可以讓複雜的工作簡易化,減少不必要的重複性工作,大大提高我們的工作效率。 [3] 
VBA程序員很多是業餘程序員,正因為業餘,解決的卻是工作中需要解決的問題;所以,VBA程序大多都是隻是在部門內部或個人使用的小工具。集成了VBA的其他應用程序也很多,但真正能為程序增色的不多。 [1] 
大多數人看到了VBA可以自動化一個程序,可以擴展已有程序,但沒有看到在Office中,VBA代碼可以是錄製的,而不是寫出來的,帶來的好處是,學習曲線變得非常緩。如果沒有宏錄製功能,要熟悉某個Office組件的對象模型,絕非一日之功。 [1] 
以ArcGIS為例,ArcGIS擴展必須使用ArcObject,不管是使用VBA也罷,VB也罷,還是C++也罷。但同時,ArcObject的學習不是一天兩天可以搞定,對於業餘程序員,要使用VBA來擴展ArcGIS,幾乎沒有可能;專業程序員又不屑使用VBA;而對於公司,如果要基於ArcObject來擴展ArcGIS,選擇VBA意味着源碼的保護很困難。所以,ArcGIS的VBA就如同雞肋。 [1] 

VBAVB 與VBA

VBA 是基於Visual Basic 發展而來的,它們具有相似的語言結構。Visual Basic 是Microsoft 的主要圖形界面開發工具,VBA 5.0 (亦即VBA 97)則是Visual Basic 5.0 的子集。Visual Basic 是由Basic 發展而來的第四代語言。Visual Basic 作為一套獨立的 Windows 系統開發工具,可用於開發Windows 環境下的各類應用程序,是一種可視化的、面向對象的、採用事件驅動方式的結構化高級程序設計語言。它具有高效率、簡單易學及功能強大的特點。VB 的程序語言簡單、便捷,利用其事件驅動的編程機制,新穎易用的可視化設計工具,並使用Windows應用程序接口(API)函數,採用動態鏈接庫(DLL)、動態數據交換(DDE)、對象的鏈接與嵌入(OLE)以及開放式數據庫訪問(ODBC)等技術,可以高效、快速地編制出 Windows 環境下功能強大、圖形界面豐富的應用軟件系統。 [1] 
Visual Basic 程序很大一部分以可視(Visual)形式實現,這意味着在設計階段就可以看到程序運行的屏幕畫面,用户可以在設計時能夠方便地改動畫面圖像、大小、顏色等,直到滿意為止。VB 的用户可以是缺乏Windows 及C 語言開發經驗的專業軟件人員,也可以是具有一定Windows開發經驗的專業人員,VB 的可視化編程方法使得原來繁瑣枯燥、令人生畏的Windows 應用程序設計變得輕鬆自如、妙趣橫生。以往的Windows 應用程序開發工具在設計圖形用户界面時,都是採用編程的方法,並伴隨大量的計算任務,一個大型應用程序約有90%的程序代碼用來處理用户界面,而且在程序設計過程中不能看到界面顯示的效果,只有在程序執行時才能觀察到,如果界面效果不佳,還需要回到程序中去修改。Visual Basic 提供了新穎的可視化設計工具,巧妙地將Windows界面設計的複雜性封裝起來,程序開發人員不必再為界面設計而編寫大量程序代碼,僅需採用現有工具按設計者要求的佈局,在屏幕上畫出所需界面,併為各圖形對象設置屬性即可,VB 自動產生界面設計代碼,這樣便將事先編制好的控件可視地連接到一起,構成一個隨時可調整的界面。 [1] 
VBA 不但繼承了VB 的開發機制,而且VBA 還具有與VB 相似的語言結構,它們的集成開發環境IDE(Intergrated Development Environment)也幾乎相同。但是,經過優化,VBA 專門用於Office 的各應用程序。VB 可運行直接來自Windows 95 或NT 桌面上的應用程序,而VBA 的項目(Project)僅由使用VBA 的Excel、Word、 PowerPoint 等稱為宿主(Host)的Office 應用程序(Application)來調用。 [1] 

VBA區別

1. VB是設計用於創建標準的應用程序,而VBA是使已有的應用程序(EXCEL等)自動化。 [3] 
2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程序 [3] 
3. 要運行VB開發的應用程序,用户不必安裝VB,因為VB開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴於它的父應用程序,例如EXCEL。 [3] 
4.VBA是VB的一個子集。 [3] 
儘管存在這些不同,VBA和VB在結構上仍然十分相似。事實上,如果你已經瞭解了VB,會發現學習VBA非常快。相應的,學完VBA會給學習VB打下堅實的基礎。而且,當學會在EXCEL中用VBA創建解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO POWERPOINT 中用VBA創建解決方案的大部分知識。 [3] 
* VBA一個關鍵特徵是你所學的知識在微軟的一些產品中可以相互轉化。 [3] 
* VBA可以稱作EXCEL的“遙控器”。 [3] 

VBA數據類型

VBA基本數據類型

即Primary Type Data,下述列表的括號內為字節數: [2] 

VBA自定義的數據類型

相當於C語言的struct,例如: [2] 
Type 自定義類型名 元素名 As 類型 … [元素名 As 類型] End Type

VBA數組

  • Option Base 0 :數組索引值從0開始 [2] 
  • Option Base 1 :數組索引值從1開始
  • Dim MyArray(10) :聲明一個數組變量,10是最大的可用的數組索引
  • MyArray(5) = 101 :給數組的元素賦值
  • Dim Data(10,5) :聲明一個二維數組變量
  • Data(1,1) = "A001" :給數組元素賦值
  • Dim cArr(-11 To 20, 1 To 3) As String :聲明一個數組,定義數組索引值的上下界
  • Dim dArr() As String :聲明動態數組
  • ReDim dArr(0 To 5, 1 To 2) :改變動態數組的尺寸默認把原數據清除。如果保留原來的數據,必須加上參數
  • Preserve:使用Preserve參數時只能改變最後一位的大小
  • If UBound(vTemp) = -1 Then:判斷數組變量vTemp是否為空數組
  • End If Erase MyArrar, Data Erase語句清除數組元素,釋放變量佔用的空間 [2] 

VBA常量

VBA系統定義常量

系統定義常量有3個:True、False和Null。 [4] 

VBA固有常量

固有常量是編程時引用的對象庫定義的常量。所有固有常量都可以在或VBA代碼中使用。通常,固有常量通過前兩個字母來指明定義該常量。來自VB庫的常量則以“vb”開頭。來自Access的常量以“ac”開頭。可以使用對象瀏覽器來查看所有對象庫中的固有常量列表。 [4] 
在VBA中,常量的數據類型有整型、長整型、單精度型、雙精度型、字節型、貨幣型、字符型、日期型和邏輯型。一個整型數據就是一個整型常量,一個長整型數據就是一個長整型常量。例如,12%、-1%是整型常量,32768&、10000000&是長整型常量,-2.5 1、3.14是單精度實型常量,3.1415926#是雙精度實型常量,China、Shanghai是字符型常量,#07/13/2001 11:45PM#是日期常量,由符號 “ # ” 將字符括起來。 [4] 

VBA符號常量

可以自行定義的常量即符號常量,必須先定義,後使用。可見,需要聲明的常量都是符號常量 [4] 
基本語法格式:
[ Publicr/ Private] Const  常量名[As  類型]=表達式
如:Global Const 符號常量名稱 = 常量值 [4] 
語句功能:
定義一個符號常量,並將指定表達式的值賦給符號常量 [4] 
語句説明如下: [4] 
1)“常量名”指定符號常量的名字。符號常量名可以由字母、數字和下畫線組成,但只能以字母開頭,不能含有空格。 [4] 
2)“表達式”指定符號常量的值。該表達式通常由數值型、字符型、邏輯型或日期型數據以及各種運算符組成,但在表達式中不能出現變量和函數。 [4] 
3) public用來表示這個常量的作用範圍是整個數據庫的所有模塊。 [4] 
4) private則表示這個常量只在使用該聲明常量語句的模塊中起作用。 [4] 
説明:
1)除用户定義的符號常量外,VBA還提供了許多符號常量,我們可以直接使用。 [4] 
2)對數碼比較長,並且在程序中多次使用的常量,通常使用符號常量代替。運行程序時,系統自動把程序中的所有符號常量換為賦給它的值。 [4] 

VBA變量

常量一樣,變量也是一塊內存空間,用於保存程序運行過程中可能變化的數據。變量的名稱是用户定義的一個標識符。 [5] 
在代碼中需要使用該變量時,只需引用相應的標識符即可,而不用管變量當前的值具體是什麼。 [5] 

VBA聲明

與用户自定義的常量相似,變量在使用之前都需要聲明,在VBA中聲明變量的語法格式有以下幾種: [5] 
在第二種語法格式中, “變量n”的數據類型為AS關鍵字後定義的數據類型,而“變量1”、“變量2”、…的數據類型為變體型。 [5] 
在VBA中,可用DimPrivatePublicStatic這4個關鍵字來聲明變量,使用不同關鍵字聲明的變量其含義也有所不同。 [5] 
◆ 利用Dim關鍵字聲明變量:Dim關鍵字主要用來在內存中分配一塊空間,併為該空間命名,是VBA中聲明變量最常用的關鍵字。使用Dim關鍵字聲明的變量只能在當前過程或模塊中使用。 [5] 
◆ 利用Private關鍵字聲明變量:Private關鍵字用於在類模塊中聲明一個私有變量,它只能在當前的類模塊中使用。當定義變量的位置同處於類模塊中時,其使用效果與使用Dim關鍵字定義的變量相同。 [5] 
◆ 利用Public關鍵字聲明變量:利用Public關鍵字聲明的變量可以在程序的任何地方調用,而與聲明變量的位置無關。 [5] 
◆ 利用Static關鍵字聲明變量:Static關鍵字用於聲明靜態變量,即變量的值在整個代碼運行期間都能被保留。 [5] 

VBA賦值

變量在使用時還需要對其進行賦值。在VBA中對變量進行賦值可通過 “ = ” 符號或 “ Set ” 關鍵字進行。通過 “ = ” 符號對變量賦值的語法格式有以下幾種。 [5] 
  • 變量名=數據
  • 變量1=變量2 運算符 數據
  • 變量1=變量2 運算符 變量3 … 運算符 變量n
如果在定義變量時指定了變量的數據類型,則為變量所賦的值也必須是該數據類型的值。如果變量定義為Integer類型,而在賦值時卻給了變量一個String類型的數據,則在編譯運行的過程中將彈出錯誤彈框。 [5] 

VBA運算符

運算符是在程序中執行計算功能的某些特殊符號,它是程序代碼的重要組成部分。在程序代碼中,運算符不能單獨使用,必須與其操作數共同組成表達式後才具有運算意義。VBA中的運算符包含算術運算符、連接運算符、比較運算符邏輯運算符等。 [4] 

VBA算術運算符

算術運算符主要用於執行四則運算,僅用算術運算符連接起來的表達式稱為算術表達式。算術運算符及其作用與示例如表所示。 [5] 
例子
名稱
結果
-$a
取反
$a 的負值。
$a + $b
加法
$a 和 $b 的和。
$a - $b
減法
$a 和 $b 的差。
$a * $b
乘法
$a 和 $b 的積。
$a / $b
除法
$a 除以 $b 的商,允許小數。
$a \ $b
除法
$a 除以 $b 的商,結果取整。
$a Mod $b
取餘
$a 除以 $b 的餘數
注意:
在執行算術運算時,運算符兩側操作的數據類型必須相同,否則會出現“類型不匹配”的錯誤提示。當“+”運算符左右兩側都是字符串類型的操作數時,執行的是連接運算,如表達式“"Pass+"word"的計算結果為字符串“ PassWord ”。 [5] 

VBA連接運算符

連接運算符的作用是將運算符兩側的操作數連接成一個數,其操作數的數據類型通常都為String類型。VBA中的連接運算符有“&”和“+”兩種,由於使用“+”執行連接運算時,容易與加法運算混淆,所以通常都採用“&”進行連接運算。 [5] 

VBA比較運算符

比較運算符可以對運算符兩側的操作數執行比較運算,其返回結果為Boolean類型的True或False。比較運算符的操作數通常為具體的數值,當操作數為字符串或其他符號時,是根據該符號的ASCII碼進行比較的。VBA中的比較運算符及其作用與示例如表所示。 [5] 
例子
名稱
結果
$a = $b
等於
TRUE,如果 $a 等於 $b。
$a <> $b
不等
TRUE,如果 $a 不等於 $b。
$a < $b
小於
TRUE,如果 $a 嚴格小於 $b。
$a > $b
大於
TRUE,如果 $a 嚴格大於 $b。
$a <= $b
小於等於
TRUE,如果 $a 小於或者等於 $b。
$a >= $b
大於等於
TRUE,如果 $a 大於或者等於 $b。

VBA邏輯運算符

邏輯運算符用於對運算符兩側的操作數執行邏輯運算,參與邏輯運算的操作數本身可以是邏輯表達式(表達式的最終結果為True或 False),也可以是算術表達式(表達式的最終返回值為0或非0)。 [5] 
在邏輯運算中,數值0與邏輯值 False相同,表示邏輯假;非0數值與True相同,表示邏輯真。邏輯運算符及其含義與示例如表所示。 [5] 
例子
名稱
結果
$a and $b
And(邏輯與)
TRUE,如果 $a 與 $b 都為TRUE。
$a or $b
Or(邏輯或)
TRUE,如果 $a 或 $b 任一為TRUE。
$a xor $b
Xor(邏輯異或)
TRUE,如果 $a 或 $b 同位相異。
Not(1>2)
Not(邏輯非)
TRUE。
(1>2) Eqv (1>2)
兩個操作數同為假,返回False;兩個操作數同為真,返回True;兩個操作數一真一假,返回False
TRUE。
2<>1 Imp 3<5
運算符左右同為真,返回True;左右同為假,返回True;左真右假,回返 False;左假右真,返回True
TRUE。

VBA語法結構

VBAif 語句

if 條件1 then   語句1elseif 條件2 then   語句2elseif ...    ...else   語句nend if

VBASelect Case 語句

Select Case 表達式   Case 表達式列表1       語句1   Case 表達式列表2       語句2       ...   Case 表達式列表n       語句nEnd Select 
其中的表達式列表可以為: [5] 

VBADo...Loop 語句

Do While或Until 條件   語句塊1   Exit Do   語句塊2Loop

VBAFor...Next語句

Do   語句塊1   Exit Do   語句塊2Loop While或Until 條件

VBAFor Each … Next語句

For 循環控制變量=初值To 終值Step 步長   語句塊 ‘Exit For語句可以跳出循環體Next

VBA跳出本次循環的continue語句

For 循環控制變量=初值 To 終值 Step 步長    Do '用於模擬continue        語句塊         If 條件 Then Exit Do '用於模擬continue        語句塊     Loop While False '用於模擬continue Next

VBAWith語句

With 對象引用   語句塊End With

VBAOn Error語句

On Error Goto 出錯處理語句的label '跳轉到出錯處理語句
On Error Resume Next '遇到錯誤,不管錯誤,繼續往下執行

VBA具有控制作用的函數

  • If(條件式,表達式1,表達式2) [5] 
  • Switch(條件式1,表達式1,[條件式2,表達式2[,...,條件式n,表達式n]])
  • Choose(索引式,選項1[,選項2,...[,選項n]]) '這是基於1的索引

VBA其他語句

VBA註釋語句

使用REM或者單引號開始的行。 [6] 

VBA語句的連寫與續行

如果一行包括多條語句,用冒號分割各個語句。跨多行的語句,在行末用“空格加下劃線”表示續行 [6] 

VBA過程與函數

Sub 過程名(參數表)    語句塊    Exit Sub    語句塊End Sub
 
Function 函數名(參數表) As Type   語句塊   函數名=表達式   Exit FunctionEnd Function
可以是PrivatePublicFriendStatic等修飾。 [6] 
調用函數/過程時,可以加括號或者不加括號。如果調用表達式作為一行的一部分,那麼必須用參數,例如函數調用的返回值賦給變量。 調用過程時, 可以使用/不使用call關鍵字。使用call語句調用過程,如果無參數,則不加括號;如果有參數,必須加括號。如果調用時用括號包住單個參數,則該參數強行按值傳遞。需要特別注意,不用call不加括號的調用,形參實參是傳值(passed by value)而不是傳引用(passed by reference),這會導致一些對象的方法調用失敗。例如: [6] 
Dim cn As ADODB.Connection    Set cn = CurrentProject.Connection    Dim rs As New ADODB.Recordset        rs.Open "SELECT * FROM myTable" , cn    Dim ExcelApp As New Excel.Application    Dim ExcelWst As Worksheet    Set ExcelWst = ExcelApp.Workbooks.Add.Worksheets(1)    ExcelWst.Range("A2").CopyFromRecordset(rs) '失敗,無法執行該行    ExcelWst.Range("A2").CopyFromRecordset rs  '可成功執行該行

VBA常用內置函數

VBA的常用內置函數: [5] 
  • 舍入函數:Fix 向0取整,Int向下取整, Round四捨五入
  • Rnd: 返回0-1內的單精度隨機數
  • 字符串函數: [5] 
    • Filter:對字符串的一維數組的過濾
    • InStr([Start, ]<Str1>,<Str2>[, Compare])與InStrRev: 查找子串
    • Len:字符串長度
    • Join:連接一維數組中的所有子字符串
    • Left,Right,Mid: 截取子字符串
    • Space(數值) :生成空格字符串
    • Ucase,Lcase:大小寫轉換函數
    • Ltrim, Rtrim,Trim :刪除首尾空格
    • Split:分割一個字符串成為一維數組
    • StrComp:字符串比較
    • StrConv:字符串轉換
    • String(number, character):制定字符重複若干次
  • 日期/時間有關函數: [5] 
    • Year, Month, Day, WeekDay,Hour,Minute,Second: 截取日期時間分量
    • DateAdd: 日期/時間增量函數
    • DateDiff(<間隔類型>,<日期1>,<日期2>[,W1][,W2])日期/時間的距離函數
    • DatePart(<分割類型>,<日期>[,w1][,w2])時間分割函數
    • DateSerial(<表達式1>,<表達式2>,<表達式3>) 合成日期;DateValue(“字符串表達式”)返回日期;
    • Date,Time,Now,Timer: 返回日期時間
    • TimeSerial:由時間序列得到時間對象
    • TimeValue:由時間字符串得到時間對象
    • Weekday:獲得日期的周幾
  • 轉換函數:CBoolCByte、CCur、 CDate、 CDbl、CDec、CInt、 CLng、CLngLng、CLngPtr、 [5]  CSng、CStr、CVar、CVErr、Asc(<字符串表達式>)返回第一個字符的Ascii編碼值、Chr(ASCII碼)返回字符、Hex、OctStr(<數值表達式>)返回字符串、Val(string)、FormatFormatCurrency、FormatDateTime、FormatNumber、FormatPercentMonthName
  • Nz(表達式或字段屬性值[,規定值])如果是空,則返回0或者""或者函數的第二個參數值 [5] 
  • 驗證函數:isNumericisDateisNullisEmptyIsArrayIsErrorIsMissing、IsObject [5] 
  • 數學函數:Abs、Sqr、Tan、Atn(即atan)、Sin、Cos、Exp(e為基的指數)、Log自然對數 [5] 
  • Array:構造一個Array對象 [5] 
  • CallByName: get or set a property, or invoke a method at run time using a string name. [5] 
  • 控制流:Choose:類似於C語言的select語句、If相當於IF-ELSE語句、Switch [5] 
  • Command:獲取命令行參數 [5] 
  • CreateObject:創建ActiveX對象
  • CurDir:返回指定驅動器的當前工作路徑 [5] 
  • 由基本數學函數導出的函數:Sec、Cosec、Cotangent、Cotan、Arcsin、Arccos、Arcsec、Arccosec、Arccotan、HSin、HCos、HTan、HSec、HCosec、HCotan、HArcsin、HArccos、HArctan、HArcsec、HArccosec、HArccotan、LogN
  • DoEvents:暫時把CPU控制權交回給系統 [5] 
  • Environ:返回環境變量的值 [5] 
  • 文件操作: [5] 
    • Dir:返回滿足條件的所有文件、目錄的名字
    • FileDateTime
    • FileLen
    • FreeFile Function
    • GetAttr:返回文件、目錄的屬性值
    • Input:讀取文件
    • Loc:文件指針位置
    • LOF:文件打開時的指針位置
    • Seek:文件指針定位
    • Spc:使用Print做position output
    • Tab:用於Print函數
  • Error:錯誤號對應的錯誤消息 [5] 
  • Windows Registry中的數據:GetAllSettingsSaveSettingDeleteSettingGetSetting [5] 
  • GetObject:ActiveX組建的引用 [5] 
  • IMEStatus:返回當前Input Method Editor (IME) [5] 
  • Macintosh平台:MacID、MacScript [5] 
  • 金融函數: [5] 
    • DDB:使用double-declining balance計算貶值
    • FV:計算固定利率的年金
    • IPmt:計算利率
    • IRR:計算利率
    • MIRR:計算利率
    • NPer:計算週期數
    • NPV:計算net present value
    • Pmt:計算支付數
    • PPmt:計算本金支付數
    • PV:計算present value
    • Rate:利息率
    • SLN:straight-line depreciation
    • SYD:計算sum-of-years' digits depreciation
  • Partition:返回字符串,表示一個數值名字落在各個range內。常用於SQL select語句 [5] 
  • QBColor:顏色值 [5] 
  • RGB:顏色值 [5] 
  • TypeName:得到變量的類型名 [5] 
  • VarType:得到變量的類型數 [5] 

VBA用途

VBA6 VBA6
由於微軟Office軟件的普及,人們常見的辦公軟件Office軟件中的WordExcelAccess、Powerpoint都可以利用VBA使這些軟件的應用更高效率,例如:通過一段VBA代碼,可以實現畫面的切換;可以實現複雜邏輯的統計(比如從多個表中,自動生成按合同號來跟蹤生產量、入庫量、銷售量、庫存量的統計清單)等。 [5] 
掌握了VBA,可以發揮以下作用: [5] 
1.規範用户的操作,控制用户的操作行為; [5] 
2.操作界面人性化,方便用户的操作; [5] 
3.多個步驟的手工操作通過執行VBA代碼可以迅速的實現; [5] 
4.實現一些VB無法實現的功能; [5] 
5.用VBA製做EXCEL登錄系統; [5] 
6.利用VBA可以Excel內輕鬆開發出功能強大的自動化程序。 [5] 
參考資料
  • 1.    杜菁主編;武文芳,周震副主編.數據庫技術與應用新概念教程 (第2版)=SHUJUKU JISHU YU YINGYONG XINGAINIAN JIAOCHENG:中國鐵道出版社,2016.08:第242頁
  • 2.    劉林,張瑞秋.AutoCAD 2016中文版高級應用教程 高級繪圖員考試指南 第5版:華南理工大學出版社,2016.02:第302頁
  • 3.    一線文化.2天學會EXCEL表格與數據處理 2016版:中國鐵道出版社,2016.07:第232頁
  • 4.    劉麗,高潤泉.ACCESS 2010數據庫基礎教程:北京理工大學出版社,2016.07:第206頁
  • 5.    楊小麗.EXCEL應用大全 全新升級版:中國鐵道出版社,2016.01:第465頁
  • 6.    Perry G L W . SpPack: spatial point pattern analysis in Excel using Visual Basic for Applications (VBA)[J]. Environmental Modelling & Software, 2004, 19(6):559-569.