If Then 條件式的用法
程式並不是只有單一路線執行的喔!
那這樣就像是程式自己在執行一樣,使用者無權介入
這種程式有什麼意義呢?
If Then條件式的完整用法:
If 條件式 Then
敘述式
Elseif 條件式 Then
敘述式
Else
敘述式
End If
PS!注意此用法需End If
簡單用法(一行式):
If 條件式 Then 敘述式1 : 敘述式2 : 敘述式3……
這樣講太含糊了,舉個例子:
Dim X
Private Sub Command1_Click()
X = X + 1
If X = 1 Then
MsgBox “第一次按此按鈕”
ElseIf X = 2 Then
MsgBox “第二次按此按鈕”
ElseIf X = 3 Then
MsgBox “第三次按此按鈕”
Else
MsgBox “已超過三次按此按鈕”
End If
End Sub
Dim 宣告以後將會做介紹
關於msgbox請看這篇
每次按按鈕,X值都會+1,也就是說第一次按按鈕的時候X=1,第二次的時候X=2,依此類推
利用此規律循環,做If條件,來決定程式的路線
第一次按「Command1」
第二次按「Command1」
第三次按「Command1」
第三次以後按「Command1」
再舉一個例子:
Dim X
Private Sub Command1_Click()
If X = 0 Then X = 1: MsgBox “X值已變成1”: Exit Sub
If X = 1 Then X = 0: MsgBox “X值已變成0”: Exit Sub
End Sub
剛開啟程式,X值為0,因為沒有做任何放置數值的動作
按下按鈕,如果X=0,X就會變成1,然後出現一個訊息方塊「X值已變成1」,然後結束按鈕的程式
再按下按鈕,因為X值已變成1所以又會變成0,然後出現一個訊息方塊「X值已變成0」,然後結束按鈕的程式
第一次按「Command1」
第二次按「Command1」
第三次按「Command1」
.
If 還可以做為條件判別是否要重新執行某段程式
這時候就要用GoTo保留字啦!
例如我要判別使用者是否輸入了資料:
Private Sub Command1_Click()
start: X = InputBox(“請輸入資料”)
If X = “” Then MsgBox “未輸入資料”: GoTo start
End Sub
有關於Inputbox請看這篇
GoTo保留字能夠跳到使用者自訂的標籤,然後從那個位置開始執行程式
我就設要求使用者輸入資料的標籤為start,所以就GoTo start,然後程式又會再度要求使用者輸入資料
若未輸入
.
基本上If能夠與If同時使用,就是If內還有If,就是巢狀If,能增加判別效果!
本篇教學就到此結束,有疑問請迴響