Excelで1行おきにデータに色をつける方法を整理しましたので記事にしておきます。
今回はこんなデータがあった場合に1行ごとに色を変える方法を考えていきます。
これをこんな感じにするイメージです↓
【条件付き書式】で1行おきに色を変える
一つ目のやり方としてはExcelの「条件付き書式」の機能を使って1行おきにデータに色をつけていきます。
色を変えたいデータ範囲を選択した状態で
Excelの「ホーム」タブから「条件付き書式」へ進み「新しいルール(N)」をクリック↓
クリック後に下記の画面が表示されるので「数式を使用して、書式設定するセルを決定」を選択して「=mod(row(),2)=0」と入力して「書式(F)」をクリック↓
書式設定画面の「塗りつぶし」タブから好きな色を選択してOKボタンをクリック↓
これでこんな感じで1行おきに色をつけることができます↓
データを【テーブル形式】にして色を変える
次のやり方はデータを「テーブル」形式にするやりかたです。これが一番簡単です。
データがあるセルで「ctrl+T」を押すと「テーブルの作成」ダイアログが表示されます↓
「OK」ボタンをクリックするとこんな感じで「テーブル」形式に変更されます。
すると自動で1行おきにデータに色をつけてくれます。
デザインに関してはExcelの画面右上「テーブルデザイン」タブにいろんなパターンが用意されているので自分の好みの色をそこから選択します。
こんな感じで変更が可能です↓
マクロの繰り返し作業で色を変える。
最後はマクロを使う方法です。
個人的にはここまで紹介した2つの方法で十分だと思います。
なのでマクロを使う必要はないと思うのですが、もしマクロを使ってやるならこんな感じでやればいいんじゃないか。という参考程度にしていただければと。
またやり方もここで紹介するマクロのやり方(記載方法)以外にもやり方はあると思いますので自分が考えた3パータンを紹介しておきます。
for nextステートメントのstepを使う
まずはfor nextステートメントを使うやりかたです。
変数宣言をしておいて、変数「lastrow」に最終行を取得して、for nextステートメントで「step」を使用して1行置きに色を着ける方法です。
Sub test1()
'■1行おきにデータに色を着けるマクロ
'■for next ステートメントのstepを使う
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastrow Step 2
Range(Range("a" & i), Range("f" & i)).Interior.ColorIndex = 6
Next i
End Sub
ポイントは11行目のハイライト行のstepです。step ~とすることで指定した回数だけ変数「i」にいれる値をとばすことができます。
今回はstep2としているので、変数iに対して「2、4、6、8、10….」という数字をいれていく作業になります。
結果として1行置きにデータに色を着けることができます↓
もしstep 3とした場合には変数iに対して「2 、5、8、 11、 14…..」という感じに数字をいれていく作業になります。
for nextステートメントでifを使う
for nextステートメントを使うもう一つのやりかたでifを使う方法があります。
変数宣言をしておいて、変数「lastrow」に最終行を取得して、ifステートメントで行番号を2で割った余りが0ならという条件を設定し、条件に該当した場合にはデータに色を着ける方法です。
Sub test2()
'■1行おきにデータに色を着けるマクロ
'■for next ステートメントでifで条件分岐する
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastrow
If Range("a" & i).Row Mod 2 = 0 Then
Range(Range("a" & i), Range("f" & i)).Interior.ColorIndex = 6
End If
Next i
End Sub
イメージとしては冒頭の「条件付き書式」の機能で1行置きにデータに色を着けるやりかたをそのままマクロで表現した感じでしょうか。
for eachステートメントを使う
最後にfor eachステートメントを使うやり方です。
このやり方だとfor nextステートメントに比べて変数の宣言をする数が少なくて済みます。
Sub test3()
'■1行おきにデータに色を着けるマクロ
'■for each ステートメント
Dim rng As Range
For Each rng In Range("a1").CurrentRegion
If rng.Row Mod 2 = 0 Then
rng.Interior.ColorIndex = 6
End If
Next rng
End Sub
まとめ
Excelで1行ごとにデータに色を着ける方法を3つ紹介しました。
やりやすい方法としては
- テーブル
- 条件付き書式
- マクロ
の順になると思います。
マクロでやる必要はないかと思います。自分で書いておいてなんですが。。。。記事の文字数をかさましするために書いただけなので。。。。
【本日の近況報告】
「シガレットアンドチェリー」という漫画を読みました。
この漫画、ジャンルで括るならば「ラブコメ」になるようで、自分はこの手のジャンルはあまり読んだことがないのですが(そういえば高校~大学生の時に「いちご100%」というのは読んだことがあったな。)テンポがよく、さくさく読めて気づくと引き込まれてしまって続きをどんどん読んでしまう。
そんな漫画でした。ざっくりとした内容をしりたい方は下記をご覧ください。
[open title=”クリックするとざっくりの内容がわかります”]- 人公の「君」と大学院2年生のヒロインの「先輩」が大学の喫煙所で出会う
- 「君」が「先輩」と一緒に花火を見に行く
- 主人公が先輩と同じバイト先(カフェ)でアルバイトを始める
- 「先輩」の元カレが現れる
- 元カレの前で主人公が先輩に告白する
- アルバイト先のみんなと旅行に行く
- 先輩が風邪をひく。治る
- 主人公がバイトを頑張りすぎて倒れる。治る
- 先輩が大学を卒業し、バイトを辞める
- 先輩と付き合い始める
- 主人公と先輩が二人で旅行に行く
- ひょんなことから先輩が主人公にヤキモチを焼き距離を置く
- 仲直りして終了
読み終えた後に作者をWikipediaで調べてみたところ、別作品「オトノバ」を以前ヤングマガジンで読んでいたことに気づく。こちらはバンドを題材にした漫画でした。
別の作品もぜひ読んでみたい。
【本日の1曲】
big audio dynamite/E=MC2
クラッシュのメンバーだったミックジョーンズがレゲエ・ダブ界のレジェンド、ドンレッツとかと一緒に結成したバンド、ビッグオーディオダイナマイト。
クラッシュ聴いてからこちらのバンドの曲を聴いたときは全然パンクの感じがしなくて全くいいと思いませんでしたが一周いろんな音楽聴いてからもう一回聴いてみると
「カッコいいじゃん」となりました。