這裡介紹 Excel VBA 中各種運算子的使用方式,還有許多的範例程式碼。
每個程式語言都會有一系列的運算子,不同的運算子可用於不同資料的運算,以下是 Excel VBA 中常用的運算子。
算術運算子
下表是 VBA 中的算術運算子。
運算子 | 說明 | 優先順序 |
---|---|---|
^ |
冪運算(次方) | 1 |
* |
乘法 | 2 |
/ |
除法 | 2 |
\ |
整數除法 | 3 |
Mod |
餘數 | 4 |
+ |
加法 | 5 |
- |
減法 | 5 |
以下是數學運算的範例:
Dim a, b As Integer, c As Double a = 5 b = 10 c = a + b ' 加法 c = a - b ' 減法 c = a * b ' 乘法 c = b / a ' 除法 c = b Mod a ' 餘數 c = b ^ a ' 次方
字串運算
用於字串的運算子只有一個。
運算子 | 說明 |
---|---|
& |
串接兩個字串 |
這是連接兩個字串的範例:
Dim text1 As String, text2 As String text1 = "Hi" text2 = "G. T. Wang" MsgBox text1 & " " & text2
比較運算子
比較運算子(comparison operators)可用於比較兩個數值或字串變數,傳回布林值(True
或 False
),以下是常見的比較運算子。
運算子 | 說明 |
---|---|
= |
等於 |
<> |
不等於 |
< |
小於 |
> |
大於 |
<= |
小於或等於 |
>= |
大於或等於 |
邏輯與位元運算子
邏輯與位元運算子適用於各種邏輯變數之間的運算,亦可用於位元(bitwise)運算。
運算子 | 說明 |
---|---|
And |
AND 運算 |
Or |
OR 運算 |
Not |
NOT 運算 |
Xor |
XOR 運算 |
這是 And
邏輯運算的一個範例:
Dim a, b, c As Integer Dim x, y As Boolean a = 10 b = 8 c = 6 x = a > b And b > c ' 結果為 True y = b > a And b > c ' 結果為 False MsgBox "x is " & x & ", y is " & y
若將各種不同的運算子混合在一起運算時,執行的先後順序就要注意,像邏輯與位元運算子低於比較運算子,所以這裡的判斷式在執行時,會先執行前後的比較大小運算,然後再執行 And
運算,完整的運算子優先順序資料請參考 Operator Precedence in Visual Basic。
同樣的 And
運算子也可以用於位元運算:
Dim a, b, c, x, y, z As Integer a = 10 b = 8 c = 6 x = (a And b) ' 結果為 8 y = (a And c) ' 結果為 2 z = (b And c) ' 結果為 0 MsgBox "x = " & x & ", y = " & y & ", z = " & z
位元運算就是指每個位元獨立做運算,以這裡的 a And b
來說,a
的值以二進位表示的話是 1010
,而 b
以二進位表示則為 1000
,所以兩個值做完 And
運算之後,就會是二進位的 1000
,也就是十進位的 8
,其餘以此類推。
更多關於 VBA 的教學文章,請參考 VBA 程式設計。
參考資料:Microsoft Developer Network
Irene
Dim a, b, c As Integer
a,b,c 均定義為Integer ?
還是a,b為Variant c為Integer?
Sophia
你好,我查詢了一下書本,答案是a,b為Variant
c為Integer
我原本以為是一起定義呢,謝謝你讓我知道這件事