本ページはプロモーションが含まれています
大量のデータを管理する人におすすめ。
合致したデータに色をつける方法を紹介します。
VBAを使いますが始め方から紹介。
安心してご覧ください。
EXCEL VBAを使って合致したデータに色をつける方法
サンプルシート
サンプルシートの1つめ。
サンプルシート2つめ。
やる事は、
✔ サンプルシート1のA列のデータとサンプルシート2のB列を比較
✔ 合致したセルをサンプルシート1のB列で指定した色番号で塗る
✔ 色番号だけだとわかりづらいのでサンプルシート1のC列も同じ色で塗る
まずは実行してみます
やり方を説明する前に結果をお見せします。
こんな感じになります。
VBAの始め方
VBAやった事あるよという方は飛ばしてください。
ファイル → その他 → オプション
と進んでください。
リボンのユーザー設定 → 開発
開発に✔を入れたらOKで終了です。
これで開発メニューが使えるようになります。
この中で一番左の「Visual Basic」をクリック。
ここからVBAを入力していきます。
VBA入力:データが合致したセルに色をつける方法
VBAの入力に入ります。
挿入 → 標準モジュール
ここにVBAを書いていきます。
安心して下さい。
全部公開します。
こちらをコピー&ペーストして下さい。
Sub sample()
Dim i As Long, j As Long
Dim maxR1 As Long, maxR2 As Long
Dim ws1 As Worksheet
Dim dat1, dat2
Set ws1 = Sheets("Sheet2")
maxR1 = ws1.Cells(ws1.Rows.Count, "B").End(xlUp).Row
dat1 = ws1.Range("B1:B" & maxR1)
Application.ScreenUpdating = False
Set ws2 = Sheets("Sheet1")
maxR2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
dat2 = ws2.Range("A1:A" & maxR2)
For i = 1 To maxR1
For j = 2 To maxR2
ws2.Cells(j, 3).Interior.ColorIndex = ws2.Cells(j, 2)
If dat1(i, 1) <> "" Then
If dat1(i, 1) = dat2(j, 1) Then
ws1.Cells(i, "B").Interior.ColorIndex = ws2.Cells(j, 2)
Exit For
End If
End If
Next
Next
Application.ScreenUpdating = True
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
ちなみに当プログラムはYahoo知恵袋のこちらの記事を参考にしました。
一部、機能追加など行って掲載しています。
セルに色をつける方法
セルに色をつけているところは
ws2.Cells(j, 3).Interior.ColorIndex = ws2.Cells(j, 2)
(こちらはサンプルシート1の3列目に色をつけています)
と
ws1.Cells(i, “B”).Interior.ColorIndex = ws2.Cells(j, 2)
(こちらはサンプルシート2の合致したセルに色をつけています)
です。
内容的には同じですね。
合致したデータの行で指定されている色番号の色で塗りつぶしてます。
もし塗りつぶしではなく文字色の変更をしたい場合は
Interiorの部分をFontに変更して下さい。
色番号
色番号はこちらが標準です。
見やすい色を選んでください。
1~56で指定します。
マクロの実行方法
マクロの実行方法は開発メニューの左から2番目「マクロ」をクリック。
今回はマクロが1つしかないのでそのまま実行をクリックすればOKです。
マクロの名前はVBAの最初の行。
Sub sample()
Subの後がマクロ名になってます。
自由に変更してもらって構いません。
保存方法
マクロ付きのEXCELブックは拡張子.xlsmで保存します。
名前を付けて保存→ファイルの種類→Excelマクロ有効ブック
としてください。
ファイルを開いたとき
マクロ付きのエクセルを初めて開くとこちらの画面が出ます。
コンテンツの有効化をクリックすれば大丈夫です。
ほかにもいろいろ書いてます
↓ 下記からご覧ください
サイトマップ
ブックマークして頂けると嬉しいです
よろしくお願いいたします
コメント