VB6で配列の重複を除去する
言語機能として重複を削除する関数はありませんので、自作します。
Dictionaryの重複を許さないという性質を利用し、
'引数は参照渡しで受け取る。
Public Sub removeArrayDuplication(ByRef arr As Variant)
Dim dic As Object
Dim myKey As Variant
Dim val As Variant
Set dic = CreateObject("Scripting.Dictionary")
Dim keys
'引数で受け取った配列の全要素分ループ
For Each val In arr
'dictionary内に同一キーが無いことを確認
If Not dic.Exists(val) Then
'dictionaryに追加
dic.Add val, Null
End If
Next
'配列の要素数を変更
ReDim arr(dic.Count - 1)
keys = dic.keys
Dim i As Integer
'dictionary全てを配列に再度格納
For i = 0 To dic.Count - 1
arr(i) = keys(i)
Next i
Set dic = Nothing
End Sub
エラー処理とかはしてないです。