ここでは、ExcelのVBA・マクロで条件ごとに処理を分岐させる方法を紹介します。
ExcelのVBA・マクロで条件ごとに処理を分岐させるには、IFを使います。
<サンプル>
Sub test27()
‘表の書式設定
Range(“A1:D1”).Interior.Color = rgbYellow
Range(“A1:D1”).Font.Color = rgbRed
Range(“A1:D1”).HorizontalAlignment = xlCenter
Range(“A1:D7”).Borders.Weight = xlThin
Range(“A1:D7”).Font.Name = “Meiryo UI”
Range(“A1:D7”).Font.Size = 12
‘表のデータ
Range(“A1”).Value = “グループ”
Range(“B1”).Value = “名前”
Range(“C1”).Value = “点数”
Range(“D1”).Value = “合否”
Range(“A2”).Value = “A”
Range(“A3”).Value = “B”
Range(“A4”).Value = “C”
Range(“A5”).Value = “A”
Range(“A6”).Value = “B”
Range(“A7”).Value = “C”
Range(“B2”).Value = “高橋”
Range(“B3”).Value = “鈴木”
Range(“B4”).Value = “田中”
Range(“B5”).Value = “松井”
Range(“B6”).Value = “野村”
Range(“B7”).Value = “谷重”
Range(“C2”).Value = 100
Range(“C3”).Value = 80
Range(“C4”).Value = 60
Range(“C5”).Value = 50
Range(“C6”).Value = 40
Range(“C7”).Value = 30
‘合否判定
Range(“C2”).Activate
Do
If ActiveCell.Value = “” Then Exit Do
‘点数が60以上なら合格
If ActiveCell.Value >= 60 Then
ActiveCell.Offset(columnoffset:=1).Value = “合格”
‘点数が60点未満なら不合格
Else
ActiveCell.Offset(columnoffset:=1).Value = “不合格”
End If
ActiveCell.Offset(RowOffset:=1).Select
Loop
End Sub
このプログラムでは、C列の値を1件ずつ参照していき、値が60以上ならD列に合格、60未満なら不合格と入力していきます。
条件が1つの場合は↓のように書きます。このとき60未満の場合は何も記入されません。
<サンプル>
If ActiveCell.Value >= 60 Then
ActiveCell.Offset(columnoffset:=1).Value = “合格”
End If
複数の条件分岐が発生する場合は↓のように書きます。80以上の場合、60以上の場合、60未満の場合で、処理を分岐させることが出来ます。
<サンプル>
If ActiveCell.Value >= 80 Then
ActiveCell.Offset(columnoffset:=1).Value = “大変よくできました”
ElseIf ActiveCell.Value >= 60 Then
ActiveCell.Offset(columnoffset:=1).Value = “よくできました”
Else
ActiveCell.Offset(columnoffset:=1).Value = “がんばりましょう”
End If