実行時に作成された2つのコンボボックスを持つユーザーフォームがあるとします。最初のコンボは、A1:A2(フルーツ、野菜)のアイテムをソースします。 B1:B2(アップル、オレンジ)またはC1:C2(キャロット、トマト)から2番目のコンボをソースにしたいと思っています。 「FoodClass」別のオブジェクトを変更できない - ランタイムエラー91
Option Explicit
Public WithEvents MyCombo1 As MSForms.ComboBox
Public WithEvents MyCombo2 As MSForms.ComboBox
Public Sub DrawCombo1(oParent)
Set MyCombo1 = oParent.Controls.Add("Forms.ComboBox.1", "Combo1", True)
With MyCombo1
.Top = 20
'(...) setting position
.RowSource = "A1:A2" 'Fruits;Vegetables
End With
End Sub
Public Sub DrawCombo2(oParent)
Set MyCombo2 = oParent.Controls.Add("Forms.ComboBox.1", "Combo2", True)
With MyCombo2
'(seting position)
End With
End Sub
Public Sub MyCombo1_Change()'When user chose from combo 1...
If MyCombo1.Value = "Fruits" Then MyCombo2.RowSource = "B1:B2" 'Apple;Orange
If MyCombo1.Value = "Vegetables" Then MyCombo2.RowSource = "C1:C2"'Carrot;Tomato
End Sub
という名前の私のクラスの下にはその後、私のコードは、ユーザーフォームにあります:
Option Explicit
Public ComboBox1 As FoodClass
Public Combobox2 As FoodClass
Private Sub UserForm_Initialize()
Set ComboBox1 = New FoodClass
Call ComboBox1.DrawCombo1(UserForm)
Set Combobox2 = New FoodClass
Call Combobox2.DrawCombo2(UserForm)
End Sub
たびに、ユーザーが91最初に表示されるコンボボックスのエラーを変更します。あるオブジェクトを別のオブジェクトで変更するにはどうすればよいですか? UserForm_Initialize
で
なぜVBAが必要ですか? 2つのリストボックスを持ち、2つ目のリストボックスに「間接」を使用することができます –
FoodClassクラスに2つのコンボがあり、2つのインスタンスのFoodClassを作成しますが、各インスタンスには1つのコンボしか初期化されません。 2番目は設定されていません。そのため、エラー91が表示されます。 – dee