2017-11-03 19 views
0

Excel UserFormで3種類のコンボボックスを作成したいとします。合計で、それぞれのタイプのxがあります。同じ値のVBA UserForm複数のコンボボックス

私はこのようなコードを作りたい:

With ComboboxAi for i = 1 to 5 
    .AddItem "monday" 
    .AddItem "tuesday" 

With ComboboxBj for j = 1 to 6 
    .AddItem "january" 
    .AddItem "february" 

私のコンボボックスが似命名されている:ComboboxA1、...、ComboboxA5、ComboboxB1、...、ComboboxB6

誰かが私が作るのを助けることができます適切なコード?

答えて

2

これは、構文は次のとおりです。

Dim i As Long 

    For i = 1 To 5 
     With Controls("ComboboxA" & i) 
      .AddItem "Monday" 
      .AddItem "Tuesday" 
     End With 
    Next i 

    For i = 1 To 6 
     With Controls("ComboboxB" & i) 
      .AddItem "January" 
      .AddItem "February" 
     End With 
    Next i 

ただし、以下は同じことを達成するためのより良い方法かもしれない:

Dim ctrl As MSForms.Control 

    For Each ctrl In Controls 
     If TypeOf ctrl Is MSForms.ComboBox Then 
      If ctrl.Name Like "ComboboxA*" Then ctrl.List = Array("Monday", "Tuesday") 
      If ctrl.Name Like "ComboboxB*" Then ctrl.List = Array("January", "February") 
     End If 
    Next ctrl 
関連する問題