配列にある重複要素を削除したい(VBA)
2011/7/1312:17:44
配列にある重複要素を削除したい(VBA)
以下の通りに作成した配列から重複要素を削除したいのですが
どなたかご教授下さい。
Do Until cells(r,1) <> Cells(1, 2) 'A列がB1の値になるまでC列の値を配列に格納する
If myarray = "" Then
myarray = Cells(r, 3)
Else
myarray = myarray & "," & Cells(r, 3)
End If
r = r + 1
Loop
格納された配列には、複数の重複した値があります。この配列から重複した要素を削除したいのです。
よろしく御願い申し上げます。
Scripting.Dictionary を使用する場合、変数をどの型で宣言するのか
詳しくよろしく御願い申し上げます。
- 閲覧数:
- 2,877
- 回答数:
- 1
- お礼:
- 500枚
ベストアンサーに選ばれた回答
2011/7/1313:33:11
こんなので、どうでしょうか?
Option Explicit
Sub sample()
Dim Dic, i As Long
Dim myarray
Dim myItm
Set Dic = CreateObject("Scripting.Dictionary")
i = 1
Do While Cells(i, 1) <> Cells(1, 2) 'A列がB1の値になるまでC列の値を配列に格納する
If myarray = "" Then
myarray = Cells(i, 3)
Else
myarray = myarray & "," & Cells(i, 3)
End If
i = i + 1
Loop
myarray = Split(myarray, ",")
For i = 0 To UBound(myarray)
If Not Dic.Exists(myarray(i)) Then
Dic.Add myarray(i), myarray(i)
End If
Next i
myItm = Dic.keys
For i = 0 To UBound(myItm)
Cells(i + 1, 5) = myItm(i)
Next
Set Dic = Nothing
End Sub
この質問につけられたタグ
年上の人を好きになっちゃいました
回答受付中の質問