Excel VBA質問箱 IV

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

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


13772 / 76738 ←次へ | 前へ→

【68468】Re:ComboBoxに同じ値を入れない
発言  kanabun  - 11/3/9(水) 12:57 -

引用なし
パスワード
   ▼Zenji さん:

>>すでにComboBoxどもに、アイテムがAddItem されていて、
>>そこに Sheet1 からアイテムを追加したい(重複せずに)ということであれば、
> Sheet1 からアイテムを追加したい(重複せずに)のです
良いアイデアが浮かばないので、先ほどのDictioanryを使った
方法の応用です。
今度は、すでにComboBoxたちにリストがあるということなので、
はじめにDictionaryに 各ComboBoxのリストを格納しておき、
追加したいセルの文字列が Dictionaryになかったら、
ComboBox.AddItem する、というふうに使います。


'-------------------------------- 標準モジュール(追加プロシージャ)
Sub ComboBox_AddItem()
 Dim Ws As Worksheet
 Dim i As Long, j As Long
 Dim LastRow As Long
 Dim v As Variant, ss As String
 Dim dic(2 To 9) As Object
 
 '現在の各ComboBoxのリストをDictioanryに記憶
 For i = 2 To 9
  Set dic(i) = CreateObject("Scripting.Dictionary")
  With UserForm1.Controls("ComboBox" & i)
    For j = 0 To .ListCount - 1
      dic(i)(.List(j)) = Empty
    Next
  End With
 Next
 
 Set Ws = ActiveWorkbook.Worksheets("Sheet1")
 LastRow = Ws.Range("B7").CurrentRegion.Rows.Count
 For i = 7 To LastRow
  v = Ws.Cells(i, 2).Value
  If Not IsEmpty(v) Then
   If v <> "No" Then
    For j = 3 To 10
     ss = Ws.Cells(i, j).Value
     If Not dic(j - 1).Exists(ss) Then
       UserForm1.Controls("ComboBox" & j - 1) _
         .AddItem ss
     End If
    Next j
   End If
  End If
 Next i
 Erase dic

End Sub

0 hits

【68460】ComboBoxに同じ値を入れない Zenji 11/3/9(水) 11:06 質問
【68461】Re:ComboBoxに同じ値を入れない kanabun 11/3/9(水) 11:16 発言
【68462】Re:ComboBoxに同じ値を入れない Zenji 11/3/9(水) 11:36 質問
【68465】Re:ComboBoxに同じ値を入れない kanabun 11/3/9(水) 12:06 発言
【68467】Re:ComboBoxに同じ値を入れない Zenji 11/3/9(水) 12:39 質問
【68468】Re:ComboBoxに同じ値を入れない kanabun 11/3/9(水) 12:57 発言
【68476】Re:ComboBoxに同じ値を入れない kanabun 11/3/9(水) 17:00 発言
【68482】Re:ComboBoxに同じ値を入れない Zenji 11/3/9(水) 23:21 お礼
【68484】Re:ComboBoxに同じ値を入れない teian 11/3/9(水) 23:43 発言

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