1行おきに背景色を変更するマクロ

If~Then Excel2010 マクロ講座 22回

表の1行ごとに色を変えるマクロ

セルの背景色を1行ごとに変更したら、表がぐっと見やすくなったという経験はありませんか?
やり方はわかっているのに、なかなか普段は入力するほうが忙しくて手が回らないということがあるんですよね。
そこで今回は表の1行ごとに色を変えるマクロを作ります。 これは、プログラムを作成する際の、「連続した処理」、「判断」、「繰り返し」という3つのパターンの「判断」という処理です。
(サンプルファイルは、こちらから 2010マクロ講座22回サンプルデータ

1行おきに判断して色をつける

条件書式で色分けする場合は、 条件付書式の中でMOD(モッド)関数、ROW(ロウ)関数を使って色分けします。(下図のようにします。)
ROW関数MOD関数で色分け4
マクロでもMODを使って割り切れるかどうか判断して色分けします。 判断に使うのは、「If~Thenステートメント」です。「If~Thenステートメント」を使うと、 論理式(条件式)を使って条件が成立した時の処理を実行することができます。
1行おきに背景色を変更するマクロ1
そこで、条件を「表の行数を2で割った余り0(偶数)である」にして、成立したら背景色を指定。
1行おきに背景色を変更するマクロ2
選択した表の範囲を、Dim 表 As Rangeと宣言しています。
Sub セルの1行おきに色1()
  Dim 表 As Range
  For Each 表 In Selection
    If 表.Row Mod 2 = 0 Then 'Rowプロパティで行番号を取得
      表.Interior.ColorIndex = 34
    End If
  Next
End Sub
    
1行おきに背景色を変更するマクロ3
MODで余りを求め、それが0なら、セルの色を34にしています。
1行おきに背景色を変更するマクロ4
この式に入れている色は、ColorIndexの34番です。
1行おきに背景色を変更するマクロ5