Download presentation
Presentation is loading. Please wait.
1
金融資訊管理 運算子與條件分支
2
指定值所用的「=」,其實正式的名稱是「指定運算子」。
什麼是運算子 總共有五種運算子 所謂的「運算子」就是專門用來運算的機制,VBA裡內建了「指定運算子」、 「算術運算子」 、 「字串連結運算子」 、 「比較運算子」 及 「邏輯運算子」 等五種運算子。 指定值所用的「=」,其實正式的名稱是「指定運算子」。
3
所謂的「算術運算子」就是用來進行算術的運算子。
什麼是運算子 算術運算子 所謂的「算術運算子」就是用來進行算術的運算子。 運算子 意義 用法 說明 例子 結果 + 加法 A+B A與B相加 5 + 2 7 - 減法 A-B A減B 5 – 2 3 * 乘法 A*B A與B相乘 5 * 2 10 / 除法 A/B A除以B 5 / 2 2.5 ^ 次方 A^B A的B次方 5 ^ 2 25 \ 商數 A\B A除以B的商數 5 \ 2 2 mod 餘數 A mod B A除以B的餘數 5 mod 2 1
4
所謂的「字串連結運算子」就是用來連結字串的運算子,VBA的字串連結運算子是「&」 。使用語法如下:
什麼是運算子 字串連結運算子 所謂的「字串連結運算子」就是用來連結字串的運算子,VBA的字串連結運算子是「&」 。使用語法如下: 字串A & 字串B 例如利用「&」連結”早安。”與”最近好嗎?” 將Value屬性這類的屬性利用「&」連結之後,就會自動轉換為字串。 “早安。” “最近好嗎?” & “早安。最近好嗎?” “價格為” 100 & “價格為100元。” “元。” 這個位置也可以使用Range物件的Value屬性
5
開始使用運算子 改寫「check」程序 使用「算術運算子」 Sub check()
Range(“E4”).value = (6 + 4) * 2 End Sub
6
開始使用運算子 改寫「check」程序 使用「算術運算子」(續) Sub check()
Range(“E4”).value = Range(“A4”).value + Range(“C4”).value End Sub
7
開始使用運算子 改寫「check」程序 使用「字串連結運算子」 Sub check()
Range(“E4”).value = “計算結果為” & Range(“A4”).value + Range(“C4”).value End Sub
8
開始使用運算子 改寫「check」程序 使用「字串連結運算子」(續) Sub check()
Range(“E4”).value = “計算結果為” & Range(“A4”).value + Range(“C4”).value & “喔!” End Sub
9
所謂的條件分支就是因應條件變更處理的架構。但是條件分支沒有辦法只憑錄製巨集的方式完成,這也是必須手動輸入程式碼才能完成的功能。
條件分支「if陳述式」與比較運算子/邏輯運算子 什麼是條件分支 所謂的條件分支就是因應條件變更處理的架構。但是條件分支沒有辦法只憑錄製巨集的方式完成,這也是必須手動輸入程式碼才能完成的功能。 條件分支通常會搭配使用比較運算子或是邏輯運算子。 條件 YES NO 處理 1 處理 2
10
條件分支「if陳述式」與比較運算子/邏輯運算子
If 條件式 Then 處理 End If If 如果 是否滿足條件? NO Then 然後 YES 執行處理 什麼也不作
11
比較= < <= > >= <>
條件分支「if陳述式」與比較運算子/邏輯運算子 比較運算子 所謂的比較運算子就是比較運算子的左邊與右邊,然後再判斷結果。即利用比較運算子判斷是否滿足撰寫的算式。 If 陳述式 比較= < <= > >= <> YES True NO False 執行處理 什麼也不作
12
條件分支「if陳述式」與比較運算子/邏輯運算子
比較運算子(續) 運算子 功能 = 運算子左邊等於右邊時為 True,反之為 False < 運算子左邊小於右邊時為 True,反之為 False <= 運算子左邊小於或等於右邊時為 True,反之為 False > 運算子左邊大於右邊時為 True,反之為 False >= 運算子左邊大於或等於右邊時為 True,反之為 False <> 運算子左邊不等於右邊時為 True,反之為 False
13
條件分支「if陳述式」與比較運算子/邏輯運算子
比較運算子(續) If Range(“A1”).Value >= 10 MsgBox(“OK”) End If 儲存格A1的值是否大於等於10 YES True NO False 顯示OK 什麼也不作
14
條件分支「if陳述式」與比較運算子/邏輯運算子
功能 And 左邊條件式為True並且右邊條件式也為True的情形下判斷為True Or 左邊或右邊的條件式其中之一為True的時候判斷為True Not 透過Not運算式可以反轉條件式傳回的True/False值 儲存格A1是否大於等於10 儲存格B1是否小於20 YES True NO False 顯示OK 什麼也不作
15
條件分支「if陳述式」與比較運算子/邏輯運算子
邏輯運算子(續) And False 條件1 True 條件2 True
16
條件分支「if陳述式」與比較運算子/邏輯運算子
邏輯運算子(續) Or False 條件 1 True 條件 2 True
17
Not 條件分支「if陳述式」與比較運算子/邏輯運算子 邏輯運算子(續) False False 條件 1 True 條件 1 True
18
利用「Else」在條件不滿足之下執行另外的處理
if陳述式的使用方法 利用「Else」在條件不滿足之下執行另外的處理 If 條件式 Then 處理 1 Else 處理 2 End If 是否滿足條件? YES True NO False 處理 1 處理 2
19
利用「ElseIf」執行因應多重條件式的處理
If 條件式1 Then 處理 1 ElseIf 條件式2 Then 處理 2 ElseIf 條件式3 Then 處理 3 : ElseIf 條件式N Then 處理 N Else 處理(其他) End If
20
利用「ElseIf」執行因應多重條件式的處理
條件式1 NO False 條件式2 NO YES True False 條件式N NO 處理 1 YES True False 處理 2 YES True 處理 N 處理(其他)
21
if陳述式的使用方法 範例1: 若儲存格A1為18會如何? 儲存格A1的值大於等於20 NO False 儲存格A1的值大於等於10 NO
YES True False YES True 顯示『Very Good』 顯示『Good』 顯示『OK』
22
if陳述式的使用方法 範例2: 若儲存格A1為18會如何? 儲存格A1的值大於等於10 NO False 儲存格A1的值大於等於20 NO
YES True False YES True 顯示『Very Good』 顯示『Good』 顯示『OK』
23
if陳述式的使用方法 範例3: 若儲存格A1為25又會如何? 儲存格A1的值大於等於10 NO False 儲存格A1的值大於等於20 NO
YES True False YES True 顯示『Very Good』 顯示『Good』 顯示『OK』
24
Select Case 陳述式的基本使用方法
處理 1 Case 條件2 處理 2 Case 條件3 處理 3 : Case 條件N 處理 N Case Else 處理(其他) End Select
25
Select Case 陳述式的基本使用方法
判斷條件的對象 Case條件1 Case條件2 Case Else 處理1 處理2 處理N
26
Select Case 陳述式的條件設定範例
條件的寫法 代表意義 Case 5 「判斷條件的對象」的值為 5 Case 5, 10, 15 「判斷條件的對象」的值為 5、10或15 Case 5 to 15 「判斷條件的對象」的值為落在 5到15之間 Case Is <= 5 「判斷條件的對象」的值在 5(含)以下 儲存格A1的值 顯示內容 7 「超級大獎」 10、20、30、40或50 「中獎了」 除了上述的值之外 「沒中」 比50還大 「不在判斷之內的值」 0、負值或空白 「輸入錯誤」
27
Select Case 陳述式的條件設定範例
Select Case Range(“A1”).Value Case 7 MsgBox(“超級大獎”) Case 10, 20, 30, 40, 50 MsgBox(“中獎了”) Case 1 To 50 MsgBox(“沒中”) Case Is > 50 MsgBox(“不在判斷之內的值”) Case Else MsgBox(“輸入錯誤”) End Select
28
Select Case 陳述式 若儲存格A1的值為7,結果為何? Select Case Range(“A1”).Value
Case 1 To 50 MsgBox(“沒中”) Case 7 MsgBox(“超級大獎”) Case 10, 20, 30, 40, 50 MsgBox(“中獎了”) Case Is > 50 MsgBox(“不在判斷之內的值”) Case Else MsgBox(“輸入錯誤”) End Select
29
If陳述式與Select Case陳述式個別的使用時機
有多個判斷條件的對象時 Select Case 陳述式適用時機 判斷條件的對象為一個的情形 想要分段指定數值,或是指定數值的範圍時使用。
30
利用算術運算子「+」取得儲存格A4加C4的值。 利用 If 陳述式判斷取得的值是否等於儲存格E4。
在「計算練習」裡使用運算子與條件分支 製作確認答案正確與否的功能 利用算術運算子「+」取得儲存格A4加C4的值。 利用 If 陳述式判斷取得的值是否等於儲存格E4。 如果兩者相等,意即答案正確的時候,利用Range物件的Font物件的Color屬性,將文字顏色設為藍色。 如果兩者不相等,意即答案錯誤的時候,利用Range物件的Font物件的Color屬性,將文字顏色設為紅色。
31
在「計算練習」裡使用運算子與條件分支 製作確認答案正確與否的功能(程式碼) Sub check() If Range(“A4”).Value + Range(“C4”).Value = Range(“E4”).Value Then Range(“E4”).Font.Color = vbBlue Else Range(“E4”).Font.Color = vbRed End If End Sub
32
在「計算練習」裡使用運算子與條件分支 製作清除答案欄位的功能(程式碼) 清除儲存格內容的方法 Sub reset() Range(“E4”).ClearContents Range(“E4”).Font.Color = vbBlack End Sub 將儲存格文字的顏色恢復為黑色
Similar presentations