Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4939 / 13644 ツリー ←次へ | 前へ→

【53462】重複せずに取り出す方法 ティセ 08/1/15(火) 10:41 質問[未読]
【53463】Re:重複せずに取り出す方法 マクロマン 08/1/15(火) 10:44 発言[未読]
【53464】Re:重複せずに取り出す方法 ティセ 08/1/15(火) 11:08 お礼[未読]

【53462】重複せずに取り出す方法
質問  ティセ  - 08/1/15(火) 10:41 -

引用なし
パスワード
   書き込まれた値から重複せずに取り出す方法
例:[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

【53463】Re:重複せずに取り出す方法
発言  マクロマン  - 08/1/15(火) 10:44 -

引用なし
パスワード
   フィルタオプションを使ってはいかがでしょう?
一般機能でも使えます。

http://www.k1simplify.com/vba/tipsleaf/leaf13.html

【53464】Re:重複せずに取り出す方法
お礼  ティセ  - 08/1/15(火) 11:08 -

引用なし
パスワード
   ▼マクロマン さん:
>フィルタオプションを使ってはいかがでしょう?
>一般機能でも使えます。
>
>http://www.k1simplify.com/vba/tipsleaf/leaf13.html

一番最初に考えたのもフィルタオプションで、
フィルタオプションの存在は知っていましたが、
値を引用できるとは知りませんでした。^^;
やっぱりエクセル側の機能は早いですね
助かりました。ありがとうございます。

4939 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free