Hatena::ブログ(Diary)

hogeistの日記

2009-08-08 あああ

選択範囲から重複を抽出(エクセル)

重複がある奴の背景に色を塗ります。よくCOUNTIFとかで重複チェックを紹介してますが、あれだと一個目が何処にあるか分かりません。これは重複してる物は一つめから分かります。

f:id:love_peace:20090808184424j:image

マクロ実行↓

f:id:love_peace:20090808184425j:image

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が駄目なのか・・・

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/love_peace/20090808/1249724829