概要
學習一種新語言, 數據類型和關鍵字是第一步.
數據類型
常用的數據類型如下:
類型 | 存儲空間 | 范圍 |
---|---|---|
Boolean | 2 bytes | True 或者 False |
Byte | 1 byte | 0 ~ 255 |
Integer | 2 bytes | -32768 ~ 32768 |
Long | 4 bytes | -2147483648 ~ 2147483647 |
LongLong | 8 bytes | -2147483648 ~ 2147483647 |
String | 10 bytes + string length | 0 ~ 20 億個字符 |
Object | 4 bytes | 可以賦值給任何對象引用 |
Single | 4 bytes | -3.402823E38 ~ -1.401298E-45 (對負值) |
1.401298E-45 ~ 3.402823E38 (對正值) | ||
Double | 8 bytes | -1.79769313486231E308 ~ -4.94065645841247E-324 (對負值) |
4.94065645841247E-324 ~ 1.79769313486231E308 (對負值) | ||
Date | 8 bytes | 100 年 1 月 1 日 ~ 9999 年 12 月 31 日 0:00:00 ~ 23:59:59 |
Variant | 16 bytes | 任意值, 性能較低 |
VBA 中提供了一系列 函數 用於類型之間的轉換
運算符
運算符是和數據類型同樣, 是使用最多的部分.
類型 | 運算符 | 說明 | 示例 |
---|---|---|---|
算術運算符 | * | 乘法 | MyValue = 2 * 2 ' Returns 4. |
^ | 乘方 | MyValue = 2 ^ 2 ' Returns 4. | |
/ | 除法運算, 返回浮點型結果 | MyValue = 10 / 4 ' Returns 2.5. | |
\ | 除法運算, 返回整數結果 | MyValue = 100 \ 3 ' Returns 33. | |
Mod | 求余數 | MyResult = 10 Mod 3 ' Returns 1. | |
+ | 加法 | MyNumber = 2 + 2 ' Returns 4. | |
- | 減法 | MyResult = 4 - 2 ' Returns 2. | |
比較運算符 | = | 判斷是否相等 | Check = (4 = 4) ' Returns True |
Is | 判斷 2 個對象的引用是否相同 | Set ThisObject = MyObject | |
MyCheck = ThisObject Is ThisObject ' Returns True. | |||
Like | 比較字符串時, 可以使用通配符, 簡化版的正則 | MyCheck = "aBBBa" Like "a*a" ' Returns True. | |
連接運算符 | & | 連接字符串 | MyStr = "Hello" & " World" ' Returns "Hello World". |
+ | 除了作為加法, 還可以用在字符串上 | Var1 = "34": Var2 = 6; MyNumber = Var1 + Var2 ' Returns 40. | |
Var1 = "34": Var2 = "6"; MyNumber = Var1 + Var2 ' Returns "346". | |||
邏輯運算符 | And | 邏輯與 | |
Eqv | 邏輯等於 | ||
Imp | 不太常用 | imp-operator | |
Not | 邏輯非 | ||
Or | 邏輯或 | ||
Xor | 邏輯異或 |
變量
有了數據類型, 就可以定義各種變量, 完成相應的計算. 變量的定義和計算, 和其他編程語言也沒有什么區別, 這里主要提下變量的生命周期.
全局變量和局部變量
1 Dim globalX As Integer
2
3 Sub Test()
4 f1
5 globalX = globalX + 1
6 localX = localX + 1
7 f1
8 End Sub
9
10 Function f1()
11 Dim localX As Integer
12
13 Debug.Print "全局變量 " & globalX
14 Debug.Print "局部變量 " & localX
15 End Function
運行 Test, 輸出:
全局變量 0
局部變量 0
全局變量 1
局部變量 0
靜態變量和動態變量
1 Sub Test()
2 f1
3 f1
4 f1
5 End Sub
6
7 Function f1()
8 Dim dX As Integer
9 Static sX As Integer
10
11 sX = sX + 1
12 dX = dX + 1
13 Debug.Print "靜態變量 " & sX
14 Debug.Print "動態變量 " & dX
15 End Function
運行 Test, 輸出:
靜態變量 1
動態變量 1
靜態變量 2
動態變量 1
靜態變量 3
動態變量 1