Excel VBA質問箱 IV

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

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


30551 / 76738 ←次へ | 前へ→

【51452】Re:重複を無くすコードについて
発言  ichinose  - 07/9/18(火) 23:19 -

引用なし
パスワード
   ▼Misako さん:
こんばんは。

>このサイトで、下のコードの「重複を除く」コードを記録させていただき、
>活用させていただいています。私にとって大切なコードです。
下記のコードは、出力としてコンボボックスにA列のデータを重複なしで登録するコードですよね?

つまり、コンボボックスCombobox1には、重複するデータは登録されていないのです。


>
>Private Sub UserForm_Initialize()
>Dim k As Long
>Dim i As Long
>For k = 6 To Range("A65536").End(xlUp).Row

'****************************************************************
>  For i = 0 To ComboBox1.ListCount - 1 
>    If Cells(k, 1).Value = ComboBox1.List(i) Then
>       Exit For
>    End If
>  Next i
'****************************************************************
'この中のコードは、セルの値(A6から始まる)とCombobox1に登録されている値の全て
'と等しいか否かの比較をしています。

'セルの値とCombobox1に登録されているメンバの中で等しいメンバがあれば、そのセルの
'値は、Combobox1に登録しません(重複は、含まないのですから)。

'そのセルがCombobox1に登録されているメンバの中のどれとも等しくなければ、
'そのセルをCombobox1に登録します。

'その判断が↓このIf文で行っています。これがちょっとわかりにくいですね!!
'iがComboBox1.ListCount と等しいということは、Combobox1のメンバと全て比較し、
'等しくなかったということです。つまり、新たにCombobox1にそのセルの値は登録されます。
'反対に、等しくない場合は、そのセルの値が、Combobox1のメンバに既に存在することを意味します。
'よって、そのセルの値は、Combobox1に登録しません

>  If i = ComboBox1.ListCount Then
>    ComboBox1.AddItem Cells(k, 1).Value
>  End If
>Next k
>End Sub

これでいかがですか?


Private Sub UserForm_Initialize()
Dim k As Long
Dim i As Long
For k = 6 To Range("A65536").End(xlUp).Row
  For i = 0 To ComboBox1.ListCount - 1
    If Cells(k, 1).Value = ComboBox1.List(i) Then
      Debug.Print Cells(k, 1).Row & " の " & Cells(k, 1).Value & " は既に存在します"
       Exit For
    End If
  Next i
  If i = ComboBox1.ListCount Then
    ComboBox1.AddItem Cells(k, 1).Value
  End If
Next k
End Sub

尚、上記のようにDebug.Printを入れて、見直してみてください

0 hits

【51451】重複を無くすコードについて Misako 07/9/18(火) 21:55 質問
【51452】Re:重複を無くすコードについて ichinose 07/9/18(火) 23:19 発言
【51458】Re:重複を無くすコードについて Misako 07/9/19(水) 20:42 お礼
【51460】Re:重複を無くすコードについて ichinose 07/9/19(水) 21:57 発言
【51485】Re:重複を無くすコードについて Misako 07/9/20(木) 22:17 お礼
【51530】Re:重複を無くすコードについて ichinose 07/9/21(金) 19:42 発言
【51534】Re:重複を無くすコードについて 多摩川 07/9/22(土) 0:02 お礼
【52052】Re:重複を無くすコードについて Misako 07/10/17(水) 22:59 お礼

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