目次
概要
Excelでは、見やすさを高めるために「1行おきに色を付ける」手法がよく用いられます。特に、表形式のデータを扱う場合、偶数行または奇数行に薄い背景色を加えることで、視認性が向上します。
本記事では、**VBA(Visual Basic for Applications)**を使って、任意の表に対して交互の行に背景色を設定する方法をご紹介いたします。VBAの条件付き書式機能を活用しており、作業の自動化にも役立ちます。
サンプルコード
Sub ShadeAlternateRows()
Dim dataArea As Range
Set dataArea = Range("B2").CurrentRegion
' 見出し行を除いたデータ範囲のみ取得
Set dataArea = dataArea.Offset(1, 0).Resize(dataArea.Rows.Count - 1)
With dataArea
.FormatConditions.Delete
.FormatConditions.Add( _
Type:=xlExpression, _
Formula1:="=MOD(ROW(),2)=1" _
).Interior.Color = RGB(220, 240, 255)
End With
End Sub
コード解説
Range("B2").CurrentRegion
現在のデータ範囲を自動で取得します。起点は「B2」としていますが、使用する表に応じて変更可能です。Offset(1, 0).Resize(...)
見出し行(1行目)を除外し、データ行のみを対象としています。FormatConditions.Add
条件付き書式を追加するためのメソッドです。Type:=xlExpression
とすることで、数式を条件として指定しています。Formula1:="=MOD(ROW(),2)=1"
Excelの関数MOD(ROW(),2)=1
により、奇数行を対象にします。偶数行に色を付けたい場合は=MOD(ROW(),2)=0
に変更してください。RGB(220, 240, 255)
塗りつぶす背景色を指定しています。必要に応じて色を変更してください。
応用
本手法は、下記のような場面で応用できます。
- 複数のシートに対して処理を繰り返すマクロの一部として利用
- フィルタやソート操作後でも、行番号に基づいた条件で配色を維持
- データを動的に読み込んだ後の自動整形処理に組み込む
また、色を変えることで、印刷時の読みやすさも向上し、業務効率化にもつながります。
まとめ
本記事では、Excel VBAを使って表のデータ範囲に対し、1行おきに背景色を設定する方法をご紹介いたしました。条件付き書式と数式 MOD(ROW(),2)
を組み合わせることで、柔軟に行配色をコントロールできます。
見た目を整えるだけでなく、データの可読性を高めるためにも、ぜひ本手法をご活用ください。