使用MsgBox("請問是否正確?", vbYesNo)需使用回傳值賦值,如沒有賦值給變數,則會產生錯誤,必須改用MsgBox "請問是否正確?", vbYesNo。
Sub test()
'Dim result As VbMsgBoxResult
result = MsgBox("請問是否正確?", vbYesNo)
If result = vbYes Then
MsgBox "是"
Else
MsgBox "否"
End If
MsgBox "測試", vbYesNo
End Sub
運算子 | 解說 |
---|---|
a=b | a等於b時為真 |
a<b | a小於b時為真 |
a>b | a大於b時為真 |
a<>b | a不等於b時為真 |
a<=b | a小於等於b時為真 |
a>=b | a大於等於b時為真 |
Sub test()
Dim result As Integer
age = InputBox("請問你幾歲?")
If age < 20 Then
MsgBox "未成年"
Else
MsgBox "成年"
End If
End Sub
ElseIf 可以讓條件式串聯無數多個條件。
Sub test()
Dim result As Integer
num = InputBox("請輸入一個數字")
If num < 20 Then
MsgBox "<20"
ElseIf num < 40 Then
MsgBox "20~39"
ElseIf num < 60 Then
MsgBox "40~59"
Else
MsgBox "other"
End If
End Sub
Sub test()
Dim result As Integer
num = InputBox("請輸入一個數字")
If num < 50 Then
If num < 25 Then
MsgBox "0~24"
ElseIf num < 50 Then
MsgBox "25~49"
End If
Else
MsgBox "other"
End If
End Sub
邏輯運算子 | 意思 |
---|---|
A AND B | A和B必須皆為真,才為真。 |
A OR B | A或B一方為真,則為真。 |
NOT (A) | A成立時為假,不成立時為真 |
AND範例
Sub test()
Dim result As Integer
num = InputBox("請輸入一個數字")
If (num > -1) And (num < 30) Then
MsgBox "0~29"
Else
MsgBox "other"
End If
End Sub
NOT範例
Sub test()
Dim result As Integer
num = InputBox("請輸入一個數字")
If Not (num < 50) Then
MsgBox "大於50"
Else
MsgBox "小於50"
End If
End Sub
Sub test()
If 1 Then
MsgBox "正確"
Else
MsgBox "錯誤"
End If
End Sub
IF條件語句雖然可以處理各種條件,但當條件的變數只有一個時,使用Select Case句是比較簡單的寫法。
其中 Case後方有多種寫法,可以省略Is,也可以用To的用法。
Sub test()
Dim result As Integer
num = InputBox("請輸入一個數字")
Select Case num
Case Is < 10
MsgBox "小於10"
Case Is < 30
MsgBox "大於10小於30"
Case 30
MsgBox "剛好30"
Case 31, 32
MsgBox "31或32"
Case Is <= 37, 38, 39
MsgBox "33到39"
Case 40 To 49
MsgBox "40~49"
Case Else:
MsgBox "都不在範圍內"
End Select
End Sub
如果某個條件已經達成,後面的條件式就不會再判斷了,會直接跳到End Select。