重複しないリストを作る(5)


と、いくつかの方法をご紹介しましたが、DictionaryとかCollectionとか分かりませ~ん。「重複の削除」とか知らないしぃ。ピボットテーブルって何それ?美味しいの?という方のために、力わざも書きましょう。

重複しないリストということは、要するに「元データから重複している項目を削除」すれば作成できるわけです。だったら、その仕組みを自分で作ります。次のように考えてください。

  1. データを下から順番にチェックします
  2. もし、そのデータが同じ列内に2以上存在していたら(重複しているので)削除する
  3. そうでなかったら(重複していないので)削除せずにひとつ上をチェックする

さて、あるデータが、ある範囲内に何個あるかは、どうすれば分かるのでしょう。そんなの簡単です。COUNTIF関数で一発でしょう。

Sub Macro1()
    Dim i As Long
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If WorksheetFunction.CountIf(Range("A:A"), Cells(i, 1)) > 1 Then
            Cells(i, 1).EntireRow.Delete
        End If
    Next i
End Sub

こんな感じです。

こうやって、自分で重複しているデータを削除するのなら、オートフィルタを使う手もありますね。オートフィルタなら複数列で重複を判定するのも簡単です。それも、そのうち書きましょうか。