【マクロ・VBA コード・ファイルダウンロード可】セルの値が同じ時色付けするマクロ

エクセル

セルの値が同じ時色付けするマクロを紹介します

ダウンロードファイルもありますので良かったら試してみてください

またマクロコードも紹介しています

使用方法解説動画↓

仕事で表データを使って分析するときに、10や100のデータの羅列を見るときって大変ですよね

私もよく仕事で表データから分析するのですが、見落としがあったりして苦戦することがあります

だから色を塗って視覚化させるのですが

フィルターを使うと、いちいち絞って範囲を決めて色を塗るのは手間がかかるし

条件付き書式を使うと、視覚化させたい該当データが3つ4つあるとその度に設定するのに時間がかかったりします

そこで、今回のマクロは視覚化させたいセルと塗りたい色を入れれば表に反映されるマクロを作りました

このマクロを使って、1分でも早く仕事を終わらせましょう

目指せ定時退社!

ダウンロードファイル

ファイルです→セルの値が同じの時色付け.xlsm

※インターネットからのマクロは、Office では既定でブロックされますので許可する必要があります

詳細はマイクロソフトが公開してますので参考にしてください →詳細ページ

ファイルダウンロードがちょっと怖いという方はコードをコピペして使ってください

ファイルを開くと黄色タスクバーが出てくるので、「編集を有効にする」を押すと

マクロの許可の画像

今度は赤色のタスクバーがでできます「詳細を表示」を押してもうまく動かせないので
次の操作をしてください

マクロの許可の画像

使いたいファイルの「プロパティ」を開きます

マクロの許可の画像

赤枠の中の「許可する(K)」にチェックを入れて「適用」をクリックしてください

マクロの許可の画像

すると赤枠がなくなるので使えるようになります

マクロの許可の画像

マクロコード

※マクロを入れる場合、EXCELファイルをマクロ形式にしてください

その後、Alt+F11でマクロの画面に移り変わるので、Alt+I+Mを押して

表示した画面にコピペしてください

下の記事にマクロの取り込み方法をまとめたのでよかったら参考にしてください

色塗り

Sub 色塗り()
'変数////////////////////////////////////
Dim wb As Workbook: Set wb = ThisWorkbook

Dim ws As Worksheet: Set ws = wb.Sheets("色付け")

Dim last_r, last_r1 '最終行の取得

Dim last_col '最終列の取得

Dim name '色を塗るセルの名前

Dim color_num '色のシリアルナンバー

Dim i, j, k, c 'カウンター変数

'重複の確認/////////////////////////////
last_r = ws.Cells(Rows.Count, 1).End(xlUp).Row '色を塗りたいA列最終行の取得

For i = 6 To last_r - 1 '6行目から最終行の1つ前まで
    
    For j = i + 1 To last_r '7行目から最終行まで
    
        With ws
        
        If .Cells(i, 1) = .Cells(j, 1) Then '重複があるとき
            
            .Range("A" & i).Interior.ColorIndex = 0 '色を抜く
            
            .Range("A" & j).Interior.ColorIndex = 0 '色を抜く
            
            c = 1
        
        End If
        
        End With
        
    
    Next j

Next i

If c = 1 Then '重複があったとき

    MsgBox "重複があります" & vbCrLf & vbCrLf & "重複箇所の色を抜いたので重複箇所を削除してください"
    
    Exit Sub 'マクロ強制終了
    
End If


'指定のセルに色を塗る//////////////////
last_r1 = ws.Range("C1").CurrentRegion.Rows.Count '色を塗りたい表の最終行

last_col = ws.Range("C1").CurrentRegion.Columns.Count + 2   '色を塗りたい表の最終列


For i = 6 To last_r
    
    name = ws.Cells(i, 1) '色を塗るセルを代入
    
    color_num = ws.Range("A" & i).Interior.ColorIndex '塗る色のシリアルナンバーを代入
    
    For j = 1 To last_r1
        
        For k = 3 To last_col
        
            If name = ws.Cells(j, k) Then '色を塗りたいセルと表のセルが同じとき
            
                ws.Cells(j, k).Interior.ColorIndex = color_num '指定した色を塗る
                
            End If
        
        Next k
    
    Next j
    
Next i

End Sub

削除

Sub 削除()
'変数////////////////////////////////////
Dim wb As Workbook: Set wb = ThisWorkbook

Dim ws As Worksheet: Set ws = wb.Sheets("色付け")

'削除//////////////////////////////////
ws.Range("C1").CurrentRegion.Clear

End Sub

コメント

タイトルとURLをコピーしました