一次元配列から重複を削除する方法を解説します。
Excel365、Excel2021以降のバージョンであれば、
WorksheetFunction.Uniqueを使用するのが簡単です。
旧バージョンとの互換性やその他カスタマイズを行いたい場合は、
Dictionaryオブジェクトを使用して重複を削除します。
WorksheetFunction.Unique
サンプルコード
Dim Arr元配列 As Variant Arr元配列 = Array("みかん", "りんご", "いちご", "みかん", "りんご") ' UNIQUE関数を使って重複を削除した配列を生成 Dim Arrユニーク化配列 As Variant Arrユニーク化配列 = WorksheetFunction.Unique(Arr元配列, True) ' ↑ 「みかん,りんご,いちご」3要素の配列が生成されます。
解説
UNIQUE関数に一次元配列を渡すことで、
配列から重複を削除した配列を生成することが出来ます。
一次元配列はExcelで言うところの「横方向の配列」、
つまり「1行n列の配列(セル範囲)」として扱われます。
よってUNIQUE関数の第2引数は省略することはできず、
Trueを指定しなければいけない点にご注意ください。

Dictionary
サンプルコード
Dim Arr元配列 As Variant Arr元配列 = Array("みかん", "りんご", "いちご", "みかん", "りんご") ' ユニーク化用のDictioanry Dim Dicユニーク化 As New Dictionary ' 配列の全要素をループ Dim key商品 For Each key商品 In Arr元配列 ' 新出の要素をDictionaryへ格納 If Dicユニーク化.Exists(key商品) = False Then Dicユニーク化.Add key商品, "" End If Next ' DictionaryのKeyを配列に変換 Dim Arrユニーク化配列 As Variant Arrユニーク化配列 = Dicユニーク化.Keys ' ↑ 「みかん,りんご,いちご」3要素の配列が生成されます。
解説
DictionaryにはKeyの存在判定を簡単に行うことが出来る、
Existsメソッドが実装されています。
これとAddメソッドを組み合わせることで、
「Keyが存在しないならAddで新規追加」
というコードが簡単に書けますので、これで重複の無いKeyのリストを作成できます。
さらにDictionaryには「Keyのリストを配列に変換」してくれる、
Keysメソッドが実装されています。
ユニーク化が完了すれば、Dictionary.Keysで一発で配列に変換可能です。