選択範囲から重複を抽出(エクセル)
重複がある奴の背景に色を塗ります。よくCOUNTIFとかで重複チェックを紹介してますが、あれだと一個目が何処にあるか分かりません。これは重複してる物は一つめから分かります。
マクロ実行↓
Sub 選択範囲を重複チェック() Dim seen As Object Set seen = CreateObject("Scripting.Dictionary") ' %seen For Each c In Selection If seen.exists(c.Value) Then c.Interior.Color = 65535 Cells(seen(c.Value)(0), seen(c.Value)(1)).Interior.Color = 65535 '二回以上塗るけど良いよね Else '初 seen(c.Value) = Array(c.Row, c.Column) End If Next c End Sub
hashにRangeオブジェクトを直接つっこめれば楽なんですが、seen(c.Value) = c とやると何故かc.valueが代入されてしまうので、位置をArrayにして次に渡しています。
Arrayは入るのに何故Rangeが駄目なのか・・・