|
書き込まれた値から重複せずに取り出す方法
例:[1][1][2][2][3]
この場合取り出す値は[1][2][3]の三つ
下のマクロより良いアルゴリズムまたはExcel VBAの機能
ありましたらご教授ください。
プログラム初心者なので変なところもあるかもしれませんが
よろしくお願いします。
桁が多くなると処理時間がどうしても気になってしまいます。
環境:celeron 1Ghz/Mem 128MB/EXCEL 2000
Option Base 1
Private Sub test()
Dim Rng As Range, C As Range
Dim LstRow As Long, Cnt As Long
Dim ActSh As Worksheet
Dim Buf(1 To 65536) As Variant
Dim Flg As Boolean
Set ActSh = ActiveSheet
LstRow = ActSh.Range("A65536").End(xlUp).Row
Set Rng = ActSh.Range("A2:A" & LstRow)
Cnt = 1
Buf(1) = ActSh.Range("A2").Value
For Each C In Rng
Flg = True
For i = 1 To Cnt
If C.Value = Buf(i) Then _
Flg = False
Next
If Flg = True Then
Cnt = Cnt + 1
Buf(Cnt) = C.Value
End If
Next
End Sub
|
|