ステートメント制御文の使用例10


使用例10

リストボックスに1列を重複なしで表示する (2種類)


 


Find と AddItem メソッドを使う方法
--------------------------------------
Private Sub UserForm_Initialize()
  Dim rng As Range
  Dim r As Long
  r = Worksheets("Sheet1").Rows.Count 'シート最終行
  ListBox1.AddItem Range("A1")        '1行目タイトル
  
  'シート検索
  '重複なしで1列データ表示
  With Worksheets("Sheet1").Range("A1:A11")
    For i = 1 To 11
    Set rng = .Find(i, LookIn:=xlValues)
      If Not rng Is Nothing Then
      ListBox1.AddItem rng.Value
      End If
    Next i
  End With
End Sub

Private Sub CommandButton1_Click()
  Unload Me
End Sub


コレクション(Collection)を使う方法
--------------------------------------
Private Sub UserForm_Initialize()
  Dim rng As Range
  Dim clt As Collection  'コレクション
  Set clt = New Collection

  '重複なしで1列データ表示
  For Each rng In Range("A1:A11")
    On Error Resume Next  'エラーを飛ばす
    clt.Add Item:=rng.Value, Key:=CStr(rng.Value)
    
      'エラー表示がない場合のみ、つまり
      '新規の値のみ リスト の項目に追加
      If Err.Number = 0 Then
            ListBox1.AddItem rng.Value
      End If
      
    On Error GoTo 0  'エラー命令の初期化
  Next
  Set clt = Nothing
End Sub

Private Sub CommandButton1_Click()
  Unload Me
End Sub

                                                                   back top