ComboBoxの項目を動的に変更する - Listプロパティー
 コンボボックスの項目を追加するには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などへ変更してください。

Excel97,2000



戻る


Excel Word Access VBA! モーグ