VBA代碼中包含變數、運算子和語句。變數在代碼中起到互交與串連的作用。變數從建立為合適的對象與資料類型,到初始化,再通過運算子計算或執行語句修改,來完成整個互交的過程。
聲明變數的關鍵詞是Dim,其文法是
Dim [WithEvents] varname[([subscripts])] [As [New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .
Dim語句的文法包含下面部分:
部分 描述
WithEvents 可選的。關鍵字,說明 varname 是一個用來響應由ActiveX 對象觸發的事件的物件變數。只有在類別模組中才是合法的。使用WithEvents,可以聲明任意個所需的單變數,但不能使用 WithEvents 建立數組。New 和 WithEvents 不能一起使用。
varname 必需的。變數的名稱;遵循標準的變數命名規範。
subscripts 可選的。陣列變數的維數;最多可以定義 60 維的多維陣列。subscripts 參數使用下面的文法:
[lower To] upper [, [lower To] upper] . . .
如果不顯式指定 lower,則數組的下界由 Option Base 語句控制。如果沒有使用Option Base 語句,則下界為 0。
New 可選的。可隱式地建立對象的關鍵字。如果使用 New 來聲明物件變數,則在第一次引用該變數時將建立該對象的執行個體,因此不必使用 Set 語句來給該對象引用賦值。New 關鍵字不能聲明任何內部資料類型的變數,以及從屬對象的執行個體,也不能與 WithEvents 一起使用。
type 可選的。變數的資料類型;可以是 Byte、 Boolean 、Integer、Long、Currency、Single、Double、Decimal(目前尚不支援)、Date、String(對變長的字串)、String * length (對定長的字串)、Object、Variant、使用者定義型別、或物件類型。所聲明的每個變數都要一個單獨的 As type 子句。
而在聲明變數或建立變數的同時,最好先考慮好變數用什麼資料類型,下面 表格顯示所支援的資料類型,以及儲存空間大小與範圍。
資料類型 儲存空間大小 範圍
Byte 1 個位元組 0 到 255
Boolean 2 個位元組 True 或 False
Integer 2 個位元組 -32,768 到 32,767
Long
(長整型) 4 個位元組 -2,147,483,648 到 2,147,483,647
Single
(單精確度浮點型) 4 個位元組 負數時從 -3.402823E38 到 -1.401298E-45;正數時從 1.401298E-45 到 3.402823E38
Double
(雙精確度浮點型) 8 個位元組 負數時從 -1.79769313486231E308到-4.94065645841247E-324;正數時從4.94065645841247E-324 到 1.79769313486232E308
Currency
(變比整型) 8 個位元組 從 -922,337,203,685,477.5808 到 922,337,203,685,477.5807
Decimal 14 個位元組 沒有小數點時為 +/-79,228,162,514,264,337,593,543,950,335,而小數點右邊有 28 位元時為 +/-7.9228162514264337593543950335;最小的非零值為 +/-0.0000000000000000000000000001
Date 8 個位元組 100 年 1 月 1 日 到 9999 年 12 月 31 日
Object 4 個位元組 任何 Object 引用
String
(變長) 10 位元組加字串長度 0 到大約 20 億
String
(定長) 字串長度 1 到大約 65,400
Variant
(數字) 16 個位元組 任何數字值,最大可達 Double 的範圍
Variant
(字元) 22 個位元組加字串長度 與變長 String 有相同的範圍
使用者自訂
(利用 Type) 所有元素所需數目 每個元素的範圍與它本身的資料類型的範圍相同。
其中的Variant是個很特殊的資料類型,它能表示除固定長度之外的所有值,並可以通過VarType來返回其資料子類型。其文法如下:
VarType(varname)
必要的 varname 參數是一個 Variant,包含使用者定義型別變數之外的任何變數。