Dictionary 配列の同じ要素を削除するDictionary(Each)
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Sub DicArraySameElementDelEach(ByVal DB As Variant, ByRef DB2() As String) '***************************************************** 'FSO 配列の同じ要素を削除するDictionary(Each) '***************************************************** 'Dictionaryオブジェクト Dim obj As Object, vrn As Variant, n As Long Set obj = CreateObject("Scripting.Dictionary") n = 0 For Each vrn In DB If obj.Exists(vrn) = False Then obj.Add vrn, "" ReDim Preserve DB2(n) As String DB2(n) = vrn n = n + 1 End If Next vrn Set obj = Nothing End Sub Private Sub test() Dim i As Long, x(5) As String, DB2() As String 'テストデータ x(0) = "1" x(1) = "A" x(2) = "1" x(3) = "B" x(4) = "" x(5) = "1" Call DicArraySameElementDelEach(x, DB2()) '値を表示 For i = LBound(DB2) To UBound(DB2) Debug.Print i & vbTab & DB2(i) Next i '0 1 '1 A '2 B '3 End Sub |