|
>有り難うございます。もし連続した名前でないときには
>このようにに簡潔には出来ないのでしょうか?
1つは、Collection を使った場合
Private colListBox As New Collection
Private Sub UserForm_Initialize()
'↓定義の際に[ New ]を付けない場合は必要
' Set colListBox = New Collection
With colListBox
.Add ListBox1
.Add ListBox2
.Add ListBox3
End With
'
For i = 1 To 3
colListBox(i).List = Array(1, 2, 3, 4) 'MyArray
colListBox(i).ListIndex = 0
Next
End Sub
'------------------------------------
2つ目はListBox を配列宣言した場合
'[ Collection ]の代わりに、ListBox を配列宣言してもできます。
'この場合は、[Add ]ではなく、[Set ]ステートメントで代入を行ないます。
Private CtrlListBox(1 To 7) As MsForms.ListBox
Private Sub UserForm_Initialize()
Set CtrlListBox(1) = ListBox1
Set CtrlListBox(2) = ListBox2
Set CtrlListBox(3) = ListBox3
'
For i = 1 To 3
CtrlListBox(i).List = Array(1, 2, 3, 4) 'MyArray
CtrlListBox(i).ListIndex = 0
Next
End Sub
試してみて下さい
|
|