制御構造 If Then Else
条件分岐です。If A Then B...もしAならば、B。
If 条件式 Then
処理
End If
条件式を満たすとき処理しなさい、ということです。
こんな表を作ってみました。
「D3」が80点以上なら、「D3」を青く塗ることにします。それ以外は何もしない。
流れ図(フローチャート)にすると、
これを見て、プログラムを作ります。
2004年8月
制御構造 If Then Else その2
プログラムを作ってみます。
Sub test_06()
'制御構造 If Then の勉強中
If Range("D3").Value >= 80 Then
Range("D3").Interior.ColorIndex = 37
End If
End Sub
Range("D3").Value は"D3"の値です。
If Range("D3").Value >= 80 Then は"D3"の値が80以上のとき。
Range("D3").Interior.ColorIndex は"D3"のセルの色です。
Range("D3").Interior.ColorIndex = 37 は"D3"のセルに色37を塗る。
このプログラムを動かしてみると、
"D3"は80以上なのでセルに色がつきました。
そして、"D3"のセルの色を消し、80未満の数字を入れもう一度実行すると
何もおこならい...プログラムは正しいということに。
「作る場所...」
標準モジュールの中にプログラムを作ったときは、
成績表を入力してあるシートをアクティブにしてから行うこと。
じゃないと、どこのシートの"D3"かわからないので。
(今は、どうしたらいいかわからない...勉強してきます)
成績表を入力してあるシートにプログラムを書いたときは
どこがアクティブでも問題ない...はず(たぶん)
勉強してきました...
どこのシートなのかプログラムの中で指定すれば問題ない...
Rangeの前にSheets("シート名")をつければいいんです。
2004年8月
制御構造 If Then Else その3
条件分岐です。If A Then B Else C...もしAならばB、それ以外ならC
If 条件式 Then
処理1
Else
処理2
End If
条件式を満たすとき処理1、それ以外のとき処理2をしなさいということです。
またこの表を使ってみました。
「D3」が80点以上なら、「D3」を青を塗ることにし、
それ以外(80点未満)なら、緑を塗ることします。
流れ図(フローチャート)にすると、
これを見て、プログラムを作ります。
2004年8月
制御構造 If Then Else その4
プログラムを作ってみます。
Sub test_07()
'制御構造 If Then Else の勉強中
If Range("D3").Value >= 80 Then
Range("D3").Interior.ColorIndex = 37
Else
Range("D3").Interior.ColorIndex = 35
End If
End Sub
"D3"が80以上のとき、"D3"のセルの37の色を塗る
それ以外のとき、"D3"のセルに35の色を塗る
このプログラムを動かしてみると、
"D3"は80以上なのでセルに色がつきました。
そして、"D3"のセルの色を消し、80未満の数字を入れもう一度実行すると
"D3"は緑になりました。
(ただし、成績表を入力してあるシートをアクティブにしてから行うこと)
2004年8月
制御構造 If Then Else その5
条件分岐です。If A Then B ElseIf C Then D Else E...
もしAならばB、CならばD、それ以外ならE。
If 条件式1 Then
処理1
ElseIf 条件式2 Then
処理2
ElseIf 条件式3 Then
処理3
Else
処理4
End If
条件式1を満たすとき処理1
条件式1を満たさないで条件式2を満たすとき処理2
条件式1、2を満たさないで条件式3をみたすとき処理3
その他(条件式1、2、3を満たさない)とき処理4
前と同じ成績表を使ってみました。
「D3」が80点以上なら、「D3」を青。
50点以上なら、緑。
30点以上なら、黄。
それ以外(30点未満)なら、赤を塗ることします。
流れ図(フローチャート)にすると、
これを見て、プログラムを作ります。
2004年8月
制御構造 If Then Else その6
プログラムを作ってみます。
Sub test_08()
'制御構造 If Then ElseIf の勉強中
If Range("D3").Value >= 80 Then
Range("D3").Interior.ColorIndex = 37
ElseIf Range("D3").Value >= 50 Then
Range("D3").Interior.ColorIndex = 35
ElseIf Range("D3").Value >= 30 Then
Range("D3").Interior.ColorIndex = 36
Else
Range("D3").Interior.ColorIndex = 38
End If
End Sub
"D3"が80以上のとき、"D3"のセルの37の色を塗る
"D3"が50以上(80未満)のとき、"D3"のセルの35の色を塗る
"D3"が30以上(50未満)のとき、"D3"のセルの36の色を塗る
それ以外(30未満)のとき、"D3"のセルに38の色を塗る
このプログラムを動かしてみると、80点以上のとき
50点以上(80点未満)のとき
30点以上(50点未満)のとき
それ以外(30点未満)のとき
フローチャートの通りに動きました。
(ただし、成績表を入力してあるシートをアクティブにしてから行うこと)
ElseIfを使えばたくさんの条件で分けることができます。
2004年8月