Excel VBA データ範囲の1行おきに色を塗る

スポンサーリンク

1行おきに色を塗る方法

通常、1つのデータは行(レコード)で管理すると思います。

データ範囲の1行おきに色を付けることにより、データの視認性が高まり、印刷したときも見栄えが良くなります.

実行結果


データ範囲の1行おきにセルに色を塗るコードと解説

Sub セル交互色()
 Dim i As Long
 Dim 最終行 As Long
 Dim 最終列 As Long
最終行 = Cells(Rows.Count, 1).End(xlUp).Row
最終列 = Cells(1, Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
 For i = 1 To 最終行 Step 2
  Range(Cells(i, 1), Cells(i, 最終列)).Interior.Color = RGB(192, 192, 192)
 Next i
Application.ScreenUpdating = True
End Sub

2行目【Dim i As Long】
繰り返し処理で使用する行番号を格納する、カウンター変数「i」を長整数型で宣言します。


3行目【Dim 最終行 As Long】
データ範囲の最終行番号を格納する、変数「最終行」を長整数型で宣言します。


4行目【Dim 最終列 As Long】
データ範囲の最終列番号を格納する、変数「最終列」を長整数型で宣言します。


5行目【最終行 = Cells(Rows.Count, 1).End(xlUp).Row】
Endプロパティを使用してセルの最終行から上方向にデータの最終行番号を取得して変数「最終行」に代入しています。


6行目【最終列 = Cells(1, Columns.Count).End(xlToLeft).Column】
Endプロパティを使用してセルの最終列から左方向にデータの最終列番号を取得して、変数「最終列」に代入しています。


7行目【Application.ScreenUpdating = False】
Application【オブジェクト】のScreenUpdating 【スクリーンアップディーティング】プロパティにFalseを設定して、次の繰り返し処理時の使用メモリ抑制と高速化のため画面の更新を抑止します。


8行目【For i = 1 To 最終行 Step 2】
For文繰り返し処理でカウンター変数のiに1~最終行までを代入し、Stepキーワードを使用して増減値を2 つまり、通常、i変数は1ずつ繰り返しの中で増加するところを2ずつ増加するように設定します。


9行目【Range(Cells(i, 1), Cells(i, 最終列)).Interior.Color = RGB(192, 192, 192)】
Interior【インテリア】プロパティで変数iに格納される2行おきのセルのInterior【インテリア】オブジェクト(塗りつぶし)を取得してcolorプロパティでRGB関数を使用して薄いグレーを設定しています。色を変更する場合はRGB値を変更してください


11行目【Application.ScreenUpdating = True】
Application【オブジェクト】のScreenUpdating 【スクリーンアップディーティング】プロパティにTrueを設定して、抑止していた画面の更新を再開します。

このコードでは奇数行に色をつけていますが偶数行に色を付けたい場合は、カウンター変数iに代入した1 To 最終行 の1を2に変更すれば2行目から色がつき偶数行に色がつきます。

簡単なコードでしたが、下記のリンクのコードを合わせることにより、見栄えの良い表ができます。
表範囲に罫線を引く
列の幅を設定する
行の高さを設定する
面倒な印刷設定を高速自動化


以上で、データ範囲の1行おきに色を塗る方法についての解説を終了します。
ありがとうございました。

スポンサーリンク

関連記事・広告