vbaで重複した値を除去したい場合は、辞書を作成してキーに値を突っ込めばOK。最近仕事で使用したのでメモ書きしておく。
Sub 重複除去1() Dim i, j As Integer Dim dic As Object Dim Keys '辞書オブジェクトを作成 Set dic = CreateObject("Scripting.Dictionary") i = 1 Do While Cells(i, 1) <> "" '辞書のキーが重複した際のエラーを無視 On Error Resume Next '辞書のキーに値を設定。セルの値をキーに登録する際はvalueプロパティを付ける必要がある dic(Cells(i, 1).Value) = "" i = i + 1 Loop '辞書からキーを取得 Keys = dic.Keys j = 1 'キーの数だけ処理を実施 For Each tmp In Keys Cells(j, 2) = tmp j = j + 1 Next End Sub
結果はこんな感じ
また、表の内容が変わっても良い場合はRemoveDuplicatesメソッドを使った方が簡単。
Sub 重複除去2() Range("A1:A7").Select ActiveSheet.Range("$A$1:$A$7").RemoveDuplicates Columns:=1, Header:=xlNo End Sub