シート上のデータを配列に格納する際、『すでに格納済みのデータは除外したい』ということがあるかと思います。
そんなときに便利なDictionaryというオブジェクトを紹介します。
'セルに記載されている値を一意に配列に格納する
Dim dic_test As Object
Dim arg_test() As String
Dim cnt_test As Long
Dim i As Long
'Dictionaryオブジェクト生成
Set dic_test = CreateObject("Scripting.Dictionary")
'A1セルからA100セルまで処理
i = 0
Do
i = i + 1
If i > 100 Then
Exit Do
End If
'キー値セット
key = Cells(i, 1).Value
'キー値がDictionary内に存在しないときのみ、配列に登録
If dic_test.exists(CStr(key)) = True Then
Else
'キー値をディクショナリに追加
dic_test.Add CStr(key), ""
cnt_test = cnt_test + 1
ReDim Preserve arg_test(1 To cnt_test)
arg_test(cnt_test) = key
End If
Loop
'この時点のarg_testは、A1セルからA100セルの値を、一意になるように登録されている
ポイントは、キー値の判定の際、変数の型によって判定できないことを防ぐため、CStrを使用して必ず文字列型のキー値として判定しているところです。
Dictionaryオブジェクトの検索はとっても速いので、配列をループして存在確認するより速いです。(要素数が増えれば増えるほど実感できます。)