Excel VBA質問箱 IV

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

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


30538 / 76733 ←次へ | 前へ→

【51460】Re:重複を無くすコードについて
発言  ichinose  - 07/9/19(水) 21:57 -

引用なし
パスワード
   ▼Misako さん:
こんばんは。
>でも何故iの変数が0〜2の動きなのでしょうかね?
ん? iが0〜2というような変化することが疑問に思う事の真意がちょっと
わかりませんが・・・。

Combobx1のメンバーはList()という配列に格納されています。
List()の最初の添え字が0なのですよ!!

例えば、上記のCombobox1にメンバとして、あ、い、う、え、お という5文字が
登録されているとすると・・・、

Combobox1.List(0)   ------> あ

Combobox1.List(1)   ------> い

Combobox1.List(2)   ------> う

Combobox1.List(3)   ------> え

Combobox1.List(4)   ------> お

となります。このListという配列の添え字としてiは使われています。

ですから、iは、0,1,2という変化をFor文によって制御され、
Combobox1のメンバを全て取得することが出来るのです。

これでいかがですか?

投稿ついでに、

提示されたコンボボックスに重複なしデータの登録処理コードは、
データによっては、重複なしデータになりません。


新規ブックにて確認してください。

ユーザーフォーム(Userform1)を一つ作成してください。

このUserform1には、コンボボックス(Combobox1)を一つだけ配置してください。


このUserform1のモジュールには、提示されたコードをそのまま記述します。

'=================================
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
  If i = ComboBox1.ListCount Then
    ComboBox1.AddItem Cells(k, 1).Value
  End If
Next k
End Sub

標準モジュールに
'===============================================================
Sub main()
  With ActiveSheet.Range("a6:a20")
    .Value = [{1;2;3;4;5;5;5;6;7;8;9;10;9;9;9}]
    MsgBox "A列にサンプルデータ作成しました。" & vbCrLf & _
       "これから、ユーザフォームのコンボボックスに重複なし登録します"
       
    End With
  UserForm1.Show
End Sub

としてmainを実行してみてください。

本来なら、コンボボックスには、
1,2,3,4,5,6,7,8,9,10 というメンバが登録されなければならないのに

数字が重複して登録されていませんか?

どこかにバグがありますから、考えてみてください。
3 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 お礼

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