セルの値が指定値より大きいかどうか
セルの値が指定された数より大きいかどうかを確かめたい場合があります。
通常はシートの中に多くのデータが入力されていることの方が多いため、指定値より大きいセルが複数あることも十分にあるため、それをすぐ確認するためには指定された値より大きい値のセルを目立たせる必要があります。
セルを目立たせるには背景色を付けたり、文字の色や大きさを変えたりして、目立たせるようにします。Excelでよく使われるのは黄色の背景色です。
セルの値が指定値より大きいかどうかは、セルのRangeオブジェクトのValueプロパティと指定値を比較することで判定します。
指定値より大きい数のセルに背景色を付けるサンプル
以下のコードはシートに入力されたセル範囲の中で、値が5(指定値)より大きいセルの背景色を黄色にします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Sub CheckValue() Dim iCheck As Integer '// 指定値 Dim r As Range '// セル '// 指定値を設定 iCheck = 5 '// シートの値が入力されているセル範囲をループ For Each r In ActiveSheet.UsedRange '// セルの値が数値ではない場合 If IsNumeric(r.Value) = False Then '// 次ループへ GoTo CONTINUE End If '// セルの値が指定値より大きい場合 If r.Value > iCheck Then '// 背景色 r.Interior.Color = RGB(255, 255, 0) '// 文字色 r.Font.Color = RGB(0, 100, 255) '// フォントサイズに10加算 r.Font.Size = r.Font.Size + 10 '// 太字 r.Font.Bold = True End If CONTINUE: Next End Sub |
For Eachの「ActiveSheet.UsedRange」は、アクティブシートの中で、値が入力されているセル範囲を意味します。それをRangeセルで1つずつ判定するようにしています。
値が指定値より大きいかどうかという本質的な処理ではありませんが、結構重要な処理として、For Eachループの中で、セルの値が数値かどうかの判定処理を入れています。これは、見出しに使っているセルなどで数値ではなく”名前”や”日付”などの文字列が入力されている場合に、セルの書式が「標準」だったりすると、数値と比較しても文字列の方が文字コードが大きいことから大きいと判断される場合があるため、それを回避する目的で入れています。
ここでは黄色背景色にしていますが、RGB関数の値を変えれば他に色にすることが出来ます。
他の色にしたい場合でRGB関数に何を入れればいいのかについては「VBAでWebカラーCSS3の147色を指定する」をご参照ください。
ここでは背景色を設定する「r.Interior.Color = RGB関数」の他にも、例として文字色を変更する「r.Font.Color = RGB関数」や、文字を大きくする「r.Font.Size = 変更後フォントサイズ」や、太字にする「r.Font.Bold = True」などを入れていますが、必要なものだけを設定すればOKです。
セルに設定できる内容にはいくつもあります。フォントを変えるだけでも目立たせることはできます。フォントの変更方法については「セルのフォントの各プロパティ」にまとめていますのでご参照ください。