即効テクニック |
コンボボックスの項目を追加するにはAddItemメソッドやListプロパティー、ListFillRangeプロパティー(シート上)、RowSourceプロパティー(UserForm上)などがあります。このうちList,ListFillRange,RowSourceを用いた場合、コードからこれらのプロパティーの設定値を変更することで動的に項目を変更できます。 サンプルでは2つのコンボボックスを用意し、1番目の値が変更された時に2番目のコンボボックスにあらかじめ配列で用意しておいた値を設定します。 具体的には、1つ目のコンボボックスで製品分類を選び、選択された値によって2つ目のコンボボックスの商品名リストを変更します。 (前提) コンボボックス2個(ComboBox1,ComboBox2)
'======モジュールレベル変数====== Private varProduct, varOffice, varOS
'====== 商品分類選択 ====== Private Sub ComboBox1_Change() With ComboBox2 Select Case ComboBox1.Value Case "Office" .List = varOffice Case "OS" .List = varOS End Select .ListIndex = -1 End With End Sub
'====== リスト項目の格納と設定 ====== Private Sub Worksheet_Activate() varProduct = Array("Office", "OS") varOffice = Array("エクセル", "アクセス", "パワーポイント", "ワード") varOS = Array("Windows95", "Windows98", "WindowsNT", "Windows2000") ComboBox1.List = varProduct End Sub
※サンプルではリスト項目の設定をシートのActivateイベントで行っていますが、適宜Workbook_Openなどへ変更してください。