Excel VBA 教學:Excel VBA的運算子




運算子(operator),在Excel VBA 中我們可以透過運算子進行四則運算、值的比較、字串連結、邏輯運算,以及參照賦值。

邏輯運算子用於條件式中。
在條件式與條件式中間進行連接,在滿足條件的情況下,才會執行。
條件式在撰寫時務必完整撰寫,不然可能會發生錯誤喔。

以下就讓我們來試著在VBA中,試著使用邏輯計算子看看吧。


目錄

{tocify} $title={目錄} 


關於運算子

在Excel VBA中,如同其他程式語言,也可使用許多的運算子。
VBA可使用的運算子,有算術運算子、關係運算子、字串運算子、邏輯運算子、設定運算子。

設定值 內容
算數運算子 主要用於數值的四則運算。
關係運算子 主要用於兩個值的比較。
字串運算子 主要使用於字串與字串的連結。
邏輯運算子 主要使用於兩種以上條件的連結,並用來判斷是否滿足條件式。
設定運算子 主要使用於將右邊的參照值指定給左邊的變數。
參照值可指定給變數,也可將某個值設定屬性值。



算數運算子

用來進行數學運算:

但要注意的是 符號有先後順序,依序為

「  」 =>  「 和   /  」 => 「   \   」 => 「  Mod  」 =>  「   +  和   -   

也可以使用 ( )  括號來進行調整計算的優先順序。

運算子 說明 範例(結果)
+ 加法 5 + 3 → 8
- 減法 5 - 3 → 2
* 乘法 5 * 3 → 15
/ 除法    5 / 2 → 2.5
\ 取商數 5 \ 2 → 2
Mod 取餘數 5 Mod 2 → 1
^ 次方, 指數 2 ^ 3 → 8


這邊要注意的是 Mod 計算的結果,由於 Mod 計算是取結果的餘數,
如果這時候小數的餘數如果有小數部分,會轉換為整數傳回。

範例

Sub test()

    Dim num1 As Variant
    
    num1 = 17.6 Mod 4
    
    '17.6 Mod 4 的餘數為 1.6
    
    Dim num2 As Variant
    
    num2 = 17.2 Mod 3
    
    '17.2 Mod 3 的餘數為 2.2  
    MsgBox "num1的餘數為  : "num2的餘數為  :  " & num2
End Sub

     執行結果為




關係運算子

使用於兩個值的比較,比較後的結果會傳回 True 或 False:

運算子 說明 範例(結果)
= 等於 5 = 5 → True
<> 不等於 5 <> 3 → True
> 大於 5 > 3 → True
>= 大於或等於 5 >= 5 → True
< 小於 5 < 3 → False
<= 小於或等於 3 <= 5 → True
Is 運算子 物件比較 相同物件返回True,不同物件返回False
Like 運算子 字串和條件字串的比較 "Apple" Like "a*" → False ; "Apple" Like "A*" → True


範例

Sub test()

Dim str1 As Boolean
Dim str2 As Boolean

str1 = "Apple" Like "a*"
str2 = "Apple" Like "A*"
    
MsgBox "str1比對結果為 :  " & str1 & Chr(10) & "str2比對結果為 :  " & str2

End Sub


執行結果為





字串運算子


運算子 說明 範例(結果)
& 字串的連結 "windows" & "11" → windows11
+ 字串的連結 "windows" + "11" → windows11


邏輯運算子

運算子 說明 範例(結果)
And 且(都為 True 才 True) True And False → False
Or 或(其中一個為 True 就 True) True Or False → True
Not 否定 Not True → False

邏輯運算子主要使用於兩種以上條件的連結,並加以判斷是否滿足條件,滿足條件後才執行程式處理。
主要有三種 And , Or , Not


運算子 主要意義
And 條件1 和 條件2 皆成立時,為True。
也就是And運算子連接的前後條件皆須成立。
Or 條件1 和 條件2 其中一個成立時,為True。
也就是Or運算子連接的前後條件,有一個條件成立即可。
Not 條件不成立時為True。


And運算子

Excel 的And運算子屬於邏輯運算子,用於條件式中。
當使用And運算子的時候,表示連結的條件,都必須成立才符合為True。

And運算子的使用方式
Point!

條件式1    And    條件式2



範例

' 宣告變數
Dim Math As Integer
Dim Language As Integer

'變數賦值
Math = 60
Language = 50

'判斷式
'使用And運算子連接條件式
'And連結的條件式皆成立, 才會滿足
If Math >= 60 And Language >= 60 Then
    MsgBox "All pass"
Else
    MsgBox "not pass!!"
End If

     執行結果為



關於如如何使用AND運算子可參考以下連結影片


Or運算子

Excel 的Or運算子屬於邏輯運算子,用於條件式中。
當使用Or運算子的時候,其中一個條件成立時,即可為True。

Or運算子的使用方式
Point!

條件式1    Or    條件式2



範例

' 宣告變數
Dim Math As Integer
Dim Language As Integer

'變數賦值
Math = 60
Language = 50

'判斷式
'使用Or運算子連接條件式
'Or連結的條件式只要其中一個條件成立,就可為True
If Math >= 60 Or Language >= 60 Then
    MsgBox "pass"
Else
    MsgBox "not pass!!"
End If

     執行結果為


關於如如何使用Or運算子可參考以下連結影片




Not運算子

Excel 的Not運算子屬於邏輯運算子,用於條件式中。
當使用Not運算子的時候,當不符合條件式的條件時才成立為True。

Not運算子的使用方式
Point!

Not 條件式



範例

' 宣告變數
Dim Math As Integer

'變數賦值
Math = 60

'判斷式
'使用Not運算子
'Not 條件, 當不符合條件時,為True
'當條件式Math < 60 不成立時,返回True
If Not Math < 60 Then
   MsgBox "pass"
Else
    MsgBox "not pass!!"
End If


     執行結果為


設定運算子

使用於將右邊的參照值指定給左邊的變數。
將參照值指定給變數,或將某值設定給屬性時使用。



運算子 說明 範例(結果)
= 將右邊的參照值指定給左邊的變數 str = "office2024" → 將參照值 office2024 指定給變數str


張貼留言 (0)
較新的 較舊