VBA學習-語法基礎

VBA的功能
創(chuàng)建報表
對數(shù)據(jù)進行復雜的操作和分析
自動化重復操作
自動義EXCEL工具欄、菜單欄和對話框
自定義EXCEL成為開發(fā)平臺
VBA字符集和標識符
標識符不區(qū)分大小寫,分類:用戶指定的標識符和系統(tǒng)保留的標識符
用戶指定的標識符:表示程序名、對象名、常量名、變量名等。
使用規(guī)則:
避免命名沖突
長度不大于255個字符
首字母必須是英文或漢字,不能包含空格、感嘆號、@、&、$、#等
關鍵字
As? ?Binary? ?Byref? ?ByVal? ?Date? ?Else? ?Empty
Error? ?False? ?For? ?Friend? ?Get? ?Input? ?Is
Len? ?Let? ?Lock? ?Me? ?Mid? ?New? ?Next
Nothing? ?Null? ?On? ?Option?? Optionnal? ?ParamArray? ?Print
Private? ?Property? ?Public? ?Resume? ?Seek? ?Set? ?Static
Step? ?String? ?Then? ?Time? ?To? ?True? ?WithEvents
VBA常量
固有常量(系統(tǒng)定義常量)
通過前綴限定常量
通過庫引用限定常量
用戶自定義常量
Const語句聲明常量類型
字符常量
符號常量
條件編譯常量
#Const聲明
常量聲明
[Public|Private]Const 常量名[As Type]=文字、常數(shù)、除Is外的任意算術運算符合邏輯運算符所構成的任意組合
常數(shù)類型Type:Byte、Boolean、Integer、Long、Currency、Single、Double、Date、String或Variant
VBA變量
變量的命名
不區(qū)分大小寫、不能再相同層次范圍重復、命名規(guī)則與自定義常量相同、表達意義清楚易懂
變量的類型
基本數(shù)據(jù)變量
布爾型(Boolean)
字節(jié)型(Byte)
貨幣型(Currency)聲明符號為@
日期型(Date)
小數(shù)型(Decimal)小數(shù)型數(shù)據(jù)類型只能在變體型中使用,不能聲明一個變量為小數(shù)型
雙精度型(Double)聲明符號為#
整型(Integer)聲明符號為%
長整型(Long)聲明符號為&
對象型(Object)利用Set語句聲明為對象型的變量可以賦值為任何對象的引用
單精度浮點型(Single)聲明符號為!
字符串型(String)分為變長字符串和定長字符串,聲明符號為$
變體型(Variant)無類型聲明字符,變體型除定長字符串數(shù)據(jù)及用戶定義類型外,可以包含任何類型數(shù)據(jù),包括Empty、Error、Nothing、Null等特殊值,可以用VarType(變量名稱)函數(shù)和TypeName(變量名稱)函數(shù)來決定如何處理變體型中的數(shù)據(jù)。


用戶自定義類型
Type 類型名
元素名1 As 類型1
元素名2 As?類型2
.......
元素名n As?類型n
End Type
聲明變量
1.Dim語句聲明變量
Dim[WithEvents]變量名[(subscripts)][As[New]Type][,[WithEvents]變量名[(subscripts)][As[New]Type]]...
WithEvents:說明該變量時一個用來相應由ActiveX對象觸發(fā)的事件的對象變量,只有在類模塊中才是合法的。使用WithEvents,可以聲明任意個單變量,但不能創(chuàng)建數(shù)組,且不能與New一起使用。
subscripts:表示數(shù)組的維數(shù),最多定義60維,使用語法[Lower To]Upper[,[Lower To]Upper]...,未指定數(shù)組下界,則由Option Base語句控制,默認為0。
New:表示可隱式創(chuàng)建對象的關鍵字。
Type:可選參數(shù),表示變量的數(shù)據(jù)類型。
2.Public語句聲明變量
該變量可在多個模塊或程序過程中調(diào)用
Public[WithEvents]變量名[(subscripts)][As[New]Type][,[WithEvents]變量名[(subscripts)][As[New]Type]]...
適用于多有應用程序的所有沒有使用Option Private Module模塊的任何過程。若該模塊使用了Option Private Module,則變量只在所屬工程中是公用的。
3.使用Private語句聲明變量
聲明的變量只在聲明變量模塊及下級子過程中使用
Private[WithEvents]變量名[(subscripts)][As[New]Type][,[WithEvents]變量名[(subscripts)][As[New]Type]]...
變量的生存周期(變量作用域)
在哪部分定義就在哪部分起作用

變量類型轉(zhuǎn)換函數(shù)

VBA運算符
算術運算符

比較運算符

字符串連接運算符
“+”加法運算/字符串連接
“&”兩個表達式字符串強制連接
邏輯運算符

對象變量的定義與賦值
對象變量是應用程序通過自動化顯示的對象類型,例如Application、File、Range和Sheet。使用對象瀏覽器或引用應用程序的文檔可得到這些對象的列表。
Set語句的功能是將對象引用賦值給指定的變量或?qū)傩?/p>
Set objectvar={[New]objectexpression|Nothing}
objectvar:對象變量名稱
objectexpression:由對象名、所聲明的相同對象類型的其他變量,或者返回相同對象類型的函數(shù)或方法組成的表達式
Nothing:用于斷絕objectvar與任何指定對象的關聯(lián)
Static關鍵字
過程級別的變量是用Static關鍵字來聲明的,只要代碼正在任何模塊中運行此變量就會保留它的值。靜態(tài)變量(Static Variable)在計算機編程領域指在程序執(zhí)行前系統(tǒng)就為之靜態(tài)分配(也即在運行時中不再改變分配情況)存儲空間的一類變量。與之相對應的是在運行時只暫時存在的自動變量(即局部變量)與以動態(tài)分配方式獲取存儲空間的一些對象,其中自動變量的存儲空間在調(diào)用棧上分配與釋放。
VBA程序結(jié)構
順序結(jié)構
賦值語句“=”
錯誤轉(zhuǎn)移語句
On Error Goto 行標簽/行號
行標簽:跳轉(zhuǎn)語句
On Error Resume Next
輸入對話框
inputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
prompt:對話框消息出現(xiàn)的字符串表達式
default:文本框中的字符串表達式
xpos:指定對話框左邊緣與屏幕左邊緣的水平距離
ypos:指定對話框上邊緣與屏幕上邊緣的豎直距離
helpfile:識別幫助文件
context:指定幫助主題編號
Inputbox交互操作
Object.InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextID,Type)
Object:代表Application對象的變量
Prompt:對話框中顯示信息
Title:文本框標題
Default:Variant/Range對象,指定一個初始值
Left:Variant類型,指定對話框相對于屏幕左上角的X坐標(磅)
Top:Variant類型,指定對話框相對于屏幕左上角的Y坐標(磅)
HelpFile:幫助文件
HelpContextID:上下文ID號
Type:Variant類型,指定返回的數(shù)據(jù)類型,省略時默認為文本

MsgBox()函數(shù)顯示信息
MsgBox(prompt[,button][,title][,helpfile,context])





選擇結(jié)構
分支語句結(jié)構
If? ?條件判斷語句? ?Then? ?為真時執(zhí)行的語句? [?Else? ?為假時執(zhí)行的語句 ] ?End If
多重選擇語句
If 條件1 Then
語句1
ElseIf 條件2 Then
語句2……
[Else 條件為假時語句 ]
End If
Select Case語句
Select Case 表達式
[表達式值1
[語句1]]...
[Case Else
[其他表達式]]
End Select
Case 示例
Case 1,2,3,4
Case 2 To 6
Case Is<9
循環(huán)結(jié)構
指定次數(shù)循環(huán)語句For...Next
For 計數(shù)器數(shù)值變量= 開始值 To 結(jié)束值[Step 步長]
[語句]
[ExitFor]
[語句]
Next[計數(shù)器數(shù)值變量]
Do? ?循環(huán)執(zhí)行語句? ?Loop Until? 判斷停止循環(huán)條件
Do
[語句]
[Exit Do]
[語句]
Loop Until|While 表達式(結(jié)果為True/False)
數(shù)組循環(huán)語句
For Each 元素 In 數(shù)組
[語句]
[Exit For]
[語句]
Next[元素]
注釋語句
單引號“,”加注釋語句
Rem注釋語句,只能是單獨一行
IIf()函數(shù)
IIf(判斷表達式,為真時返回值或表達式,為假時返回值或表達式)
Switch()函數(shù)
Switch(參與計算的Variant表達式1,為真時返回值或表達式1[,參與計算的Variant表達式2,為真時返回值或表達式2][,參與計算的Variant表達式n,為真時返回值或表達式n])
Choose()函數(shù)
Choose(數(shù)值表達式或字段1,可選擇項目1[,可選擇項目2,...[,可選項項目n]])
相關代碼說明和實例可查詢VBA開發(fā)文檔 以上內(nèi)容是本人自學筆記總結(jié),歡迎指正,有關Excel的問題,可私信聯(lián)系,互相交流討論,共同進步,謝謝。