Excel VBAで表の行に交互に色を付ける方法(条件付き書式)

目次

概要

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) を組み合わせることで、柔軟に行配色をコントロールできます。

見た目を整えるだけでなく、データの可読性を高めるためにも、ぜひ本手法をご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次