ここから本文です

配列にある重複要素を削除したい(VBA)

lovebarbapapaさん

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枚

違反報告

ベストアンサーに選ばれた回答

pekorins2009さん

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

質問した人からのコメント

2011/7/13 17:21:05

降参 丁寧に記述頂きましてありがとうございました。お陰で思うような動作をさせることができました。ありがようございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

お得情報

Tポイントをためるなら、この1枚!
Yahoo! JAPANカード≪年会費永年無料≫
最大7,000円相当のTポイントもらえる
(PR)クリスタルヴェール/チョコラBB
1700円相当の商品が864円で試せる♪
先着順のため、お早めに!(モラタメ)

その他のキャンペーン

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。