エクセルのマクロを利用して、行で重複している値のセルを色塗りしてみました。
行で重複している値のセルを色塗りする
やりたいことは以下の画像のように、行で重複している値がある場合に、重複している値のセルを色塗りする、というものです。
画像では重複している [a] と [f] という値について色塗りをしています。
![特定の行で重複している値のセルを色塗りした状態](https://bonjiri-blog.com/wp-content/uploads/color-cells-with-duplicate-values-in-specific-row-001-800x260.png)
以下のvbaで色塗り可能です。
Sub HighlightDuplicates()
Dim ws As Worksheet
Dim lastCol As Long
Dim i As Long, j As Long
Dim cell As Range
' 対象となるシートを指定
Set ws = ThisWorkbook.Sheets("Sheet1") ' シート名を適切なものに変更
' 最終列の取得
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' 各列をループして重複を探す
For i = 1 To lastCol
For j = 1 To lastCol
' 同じ列は比較しない
If i <> j Then
' セルの値が重複している場合は色を塗る
For Each cell In ws.Range(ws.Cells(1, i), ws.Cells(ws.Rows.Count, i).End(xlUp))
If cell.value = ws.Cells(cell.Row, j).value Then
cell.Interior.Color = RGB(255, 255, 0) ' 黄色に塗りつぶす
End If
Next cell
End If
Next j
Next i
End Sub
複数行でも実行可能
以下のように複数行でも実行可能です。
この場合、それぞれの行で重複している個所を色塗りします。
![複数行で重複している値のセルを色塗りした状態](https://bonjiri-blog.com/wp-content/uploads/color-cells-with-duplicate-values-in-specific-row-002-800x183.png)
[注意点] 空行があると実行できない
1行目などが空行だと正常に動作しないので注意が必要です。
![1行目などが空行だとマクロが正常に動作しない](https://bonjiri-blog.com/wp-content/uploads/color-cells-with-duplicate-values-in-specific-row-003-800x192.png)
コメント