Excel。大量のデータから該当する一部を塗りつぶしてわかりやすくしたい
<Excel VBA:Interiorプロパティ>
該当するデータをわかりやすくするのに、「条件付き書式」をつかう方法もあります。
ただ、条件付き書式の設定自体は簡単でも、条件数が増えたり、データが増えたり、列数が増えたりすると、範囲選択をして設定するのも面倒になってきます。
そこで、Excel VBAでプログラムをつくって、次の表に塗りつぶしを設定していきます。
今回は、Listening・Writing・Readingの3列を対象とします。
塗りつぶしするセルは、70点台(70~79点)とします。
次のようにプログラムを作ってみます。
Sub 一部色分け()
Dim i As Long
Dim j As Long
For j = 2 To 4
For i = 2 To 11
If Cells(i, j) >= 70 Then
If Cells(i, j) < 80 Then
Cells(i, j).Interior.ColorIndex = 6
End If
End If
Next
Next
End Sub
まずは、実行してみましょう。
このように、70点台のセルに塗りつぶされていることが確認できます。
では、プログラム文を確認してみましょう。
最初は、変数宣言ですね。
Dim i As Long
Dim j As Long
これらの変数は、このあとのFor To Next文の繰り返しで使います。
For j = 2 To 4
For i = 2 To 11
If Cells(i, j) >= 70 Then
If Cells(i, j) < 80 Then
Cells(i, j).Interior.ColorIndex = 6
End If
End If
Next
Next
最初のFor文は、列方向の繰り返し処理をするためのものです。
二番目のFor文は、行方向の繰り返し処理をしていきます。
70点台の判定は、IF文をつかって、判断させています。
IF文をシンプルに重ねて、70点以上で80点より小さいのかを判断させています。
この条件に合致したら、塗りつぶしの処理を行います。
Cells(i, j).Interior.ColorIndex = 6
Interiorプロパティをつかうことで、セルを塗りつぶすことができます。
このように、列・行方向に何回繰り返すのかをFor文を2つ使い、IF文などの判断行を含めるだけで、該当するセルのみに塗りつぶし処理をすることができます。
何度も同じ処理を繰り返すようならば、Excel VBAでプログラム文をつくってみるのもいいかもしれませんね。