サイトアイコン エントレ|演劇動画ニュース

エクセルマクロ(EXCEL VBA) その8 ElseIfを使った条件分岐(If ElseIf)

エクセルマクロ(EXCEL VBA)

ElseIfを使った条件分岐

前回その7でIfによる条件分岐について学びました。
今回はその続きです。

割合が80%以上の場合に「好調!」と付けることができるようになったわけですが、今回はさらに
60%以上、80%未満の場合は「もう少し!」、
60%未満の場合は「がんばれ!」と出るようにしてみます。

前回はここまで書いていましたので、この続きから書き入れていきます。

Ifの条件文の後に、
60%以上、80%未満の場合は「もう少し!」
という条件を入れたいので、

ElseIf 0.6 

と、書き足して足してください。

これは、数学でいうところの不等式っぽい条件ですね。
60%以上というのが 0.6

うまいこと、「もう少し!」を入れることができました。

では続いて、60%以下の条件についても記述してみましょう。
どうすればいいか、予想付きましたでしょうか?

 

ElseIf Cells(i, 5) 

ですね。

これを実行すると、

うまく行きました!

券売数を変えて試してみてください。
計画した通りになりましたでしょうか?

試しに0.8や0.6を変更してみて、うまく動作するか実験してみても面白いと思います。

 
ここまでやってくると、
『やっぱり「好調!」は太字にしたい』とか
『いちいちマクロの画面に行って実行を押すのがめんどくさい』とか
もっと楽に、いい感じにできないだろうかと思ってきませんか?

次回は、エクセルマクロの調べ方と、ボタンを配置する方法についてご紹介します。

 
今回の最終的なコード

Sub kenbai_hantei()
For i = 2 To 4
    If Cells(i, 5) >= 0.8 Then
        Cells(i, 6) = "好調!"
    ElseIf 0.6 

 

宿題-8

この表で、判定の文字を、
がんばれ→青 もう少し→オレンジ、好調→赤
になるようにしてください。

 

▼ クリックで解説を表示

解説

文字色を変えるには、font.colorというプロパティを使います。
例えば、F4の文字列を赤に変えるためには、
Cells(4, 6).Font.Color = RGB(255, 0, 0)
としてください。

RGBの後ろの数字は、(赤、緑、青)に対応しています。255が最大値で0が最小値です。赤が255で他が0だから、赤色というわけですね。
同様に青はRGB(0, 0, 255)です。
では、オレンジはというと、ぱっとはわからないのでGoogleなどで「カラーコード RGB オレンジ」などと検索してください。
するといろんなサイトでRGBの値を教えてくれます。
僕はRGB(255, 140, 0)にしてみましたが、これは好みなので良きところを選んでください。

ということで、マクロのコードは

Cells(i, 6) = "好調!"
Cells(i, 6).Font.Color = RGB(255, 0, 0)

のように、それぞれに色を指定していけば実現できます。

 
最終的なコードはこちらです。

Sub hw08_colorHantei()

For i = 2 To 4
    '80%以上であれば
    If Cells(i, 5) >= 0.8 Then
        Cells(i, 6) = "好調!"
        '文字色を赤に
        Cells(i, 6).Font.Color = RGB(255, 0, 0)
    
    '60%以上で80%未満であれば
    ElseIf 0.6 

答えファイルのダウンロード

エクセルマクロ(EXCEL VBA) その9 ボタンを配置/マクロの調べ方

(文:森脇孝/エントレ)

モバイルバージョンを終了