If文、Case文を使ってみよう

If文は分岐処理の一つの手段です。


■ この章で学ぶこと

TOPに戻る

If文とは?

以下のコードを記入して、実行してみてください。

Sub If文練習()
 
 If Worksheets("sheet1").Range("A1") = 1000 Then
  Range("A1").Interior.ColorIndex = 3
 Else
  Range("A1").Interior.ColorIndex = 6
 End If
 
End Sub
  1. If ○○○ Then  △△△ End If
    英訳してみると分かりますが、もし○○○ならば△△△を実行しなさい。というわけです。
    ここでは、セル「A1」が1000ならば赤色に色を変更しなさいということです。
    End IfはIf文の最後に必ずつけなくてはいけません。
     

  2. Else
    「ちがうならば」と訳すのがいいと思います。ここではセル「A1」が1000でないならば
    ということになり、その場合黄色に色を変更しなさいという命令になっています。

次は、If文の違うバージョンを試してみましょう。

「If文、Case文を使ってみよう」最初に戻る

If文について(Part2)

上のIf文は○○○の時とそれ以外のときで分けましたが、そんな簡単にいかな場合も当然ありますよね。
下のコードは、3パターン(1000のとき、2000のとき、3000のとき)とそれ以外のときで分けてます。

Sub If文練習2()
 If Range("A1") = 1000 Then
  Range("A1").Interior.ColorIndex = 3
 End If
 
 If Range("A1") = 2000 Then
  Range("A1").Interior.ColorIndex = 6
 End If
 
 If Range("A1") = 3000 Then
  Range("A1").Interior.ColorIndex = 4
 End If
 
 If Range("A1") <> 1000 And Range("A1") <> 2000 And Range("A1") <> 3000 Then
  Range("A1").Interior.ColorIndex = 7
 End If
 
End Sub

最後のIf分は1000ではなくかつ2000ではなく3000ではない時という意味となります。
勘の言い方はお分かりと思いますが、「または」としたい場合はorを使用します。

でも、ここまでだと上と同じで何も変わりません。
また、非常に長ったらしいコードになっておりすっきりさせたいと思います。


Sub If文練習3()
 
 If Range("A1") = 1000 Then
  Range("A1").Interior.ColorIndex = 3
 ElseIf Range("A1") = 2000 Then
  Range("A1").Interior.ColorIndex = 6
 ElseIf Range("A1") = 3000 Then
  Range("A1").Interior.ColorIndex = 4
 Else
  Range("A1").Interior.ColorIndex = 7
 End If

End Sub

実行させてもらえれば分かりますが、まったく同様に作動します。
ここでは、ElseIfを有効に使ってます。


「If文、Case文を使ってみよう」最初に戻る



Case文

If文は複数の分岐処理が苦手です(と私は考えています)。下のコードを見てください。
複数の分岐処理にはCase文を使用するとしっくりくるのではないでしょうか?

Sub Case文に修正()
 
 With Range("A1")
   Select Case .Value
      Case 1000
       .Interior.ColorIndex = 3
      Case 2000
       .Interior.ColorIndex = 6
      Case 3000
       .Interior.ColorIndex = 4
      Case Else
       .Interior.ColorIndex = 7
   End Select
  End With

End Sub

大分すっきりした印象を持ちませんか?(前章で学んだWithを使用しているのでさらにすっきり見えると思います)
Case文の文法としては
Select Case ○○○ 〜 Case△@△ Case◇A◇ ・・・ End Select

となります。上のコードを見ていただければわかりますよね。

このコードも実行させてみるとIf文で作成した内容と同等に作動すると思います。

このように、VBAではいくつものコーディング方法があるので、最適なものがどれかを探りながら
コーディングして勉強していきましょう。



「If文、Case文を使ってみよう」最初に戻る


// このWebサイトのご意見・ご感想はvb@tentant.comまで //

Copyright (C) 2004 visualbasic.tentant.com.All righs reserved