|
▼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
|
|