列を調べて、列内の重複を強調表示しようとしています。レコード マクロを使用して必要なものを把握しましたが、これを多くの列に適用する方法がわかりません。多くの名前が繰り返されるため、すべての列を強調表示しても機能しません。リスト内で名前が複数回繰り返されるかどうかを調べる必要があります。
これは私がこれまでに持っているコードです:
Sub findDuplicates()
Application.Goto Reference:="R3C18:R89C18"
Application.Goto Reference:="R3C18:R88C18"
Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Font
.Color = -16751204
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 10284031
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("R21").Select
End Sub
これは、B3:OA3 から範囲内の各列を通過し、色とアルファベットで並べ替えるコードです。私の考えでは、このコードは列ごとに並べ替えられるため、既に並べ替えられている列内の重複を強調表示するためにコードを追加するだけで済みます。しかし、どうすればそれができるかわかりません。
Sub sortColorThenAlpha()
'sort by color then by alphabet
Dim rngFirstRow As Range
Dim rng As Range, rngSort As Range
Dim ws As Worksheet
Application.ScreenUpdating = False
Set ws = ActiveSheet
Set rngFirstRow = ws.Range("B3:OA3")
For Each rng In rngFirstRow.Cells
With ws.Sort
Set rngSort = rng.Resize(86, 1) 'to row 88
.SortFields.Clear
.SortFields.Add(rng, xlSortOnCellColor, xlAscending, , xlSortNormal). _
SortOnValue.Color = RGB(198, 239, 206)
.SortFields.Add Key:=rng, SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rngSort
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next rng
Application.ScreenUpdating = True
End Sub
これは私が見ているものです。この黄色の条件付き書式は、行 3 から 88 までの各列に適用しようとしているものです。