| 
    
     |  | 書き込まれた値から重複せずに取り出す方法 例:[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
 
 
 |  |