プログラマの日記

Javaプログラマの苦悩の日々

重複項目の重複を除去する

ExcelVBAで重複項目の削除

VBAで選択範囲の重複した項目を、除去したリストを作りたい場合普通にforで回してもできるが、dictionaryオブジェクトを使えば高速にできます。

 

下記がソースコードです。

 


Set dictionary = CreateObject("Scripting.Dictionary")
For Each key In keys
    If Not dictionary.Exists(key) Then
        dictionary .Add key, ""
    End If
Next

 

keysが重複を省きたい配列等で、

dictionary.Exists(key) で重複がある場合trueを返すので

重複していない場合

 dictionary .Add key, ""で

dictionary オブジェクトにキーを追加する。

第2引数にキーに紐付く値を設定することもできます。

これで、重複が省かれたリストがdictionary に入っているので、

あとは、forで回せばOK

 

以上