ここではチェックボックスで地方を選択できるようにし、関西を選択した場合近畿の2府5県のリストが表示され、関東を選択すると1都6県のリストが表示されます。
チェックボックスはフレーム内に配置され、フレームのAfterUpdateイベントで、コンボボックスのRowSourceデータを変更しています。
又、初期値はForm_Loadイベント内で、コンボボックスのRowSourceTypeをvaluelist(値リスト)に設定しています。
フォームのデザインビューでコンボボックスとフレームを配置し、フレーム内に2つのチェックボックスを配置し、関東・関西を選択できるようにします。
チェックボックスの選択により、動的にコンボボックスのリストを変更します。
コンボボックスのリストを動的に変更するVBAコードです。
・MyComboSet(v As Long) - 引数vにより、コンボボックスのRowSourceに選択項目をセットします。
・フレーム6_AfterUpdate - チェックボックスがクリックされ変更されると、このイベントが発生し、MyComboSetを実行します。
・Form_Load - フォーム起動時に発生するイベントで、コンボボックスを値リストにするのと、チェックボックスの初期値をセットします。
チェックボックスで関東を選択すると、コンボボックスには1都6県(茨城県;栃木県;群馬県;埼玉県;千葉県;東京都;神奈川県)のリストが表示されます。
チェックボックスで関西を選択すると、コンボボックスには2府5県(大阪府;京都府;兵庫県;奈良県;三重県;滋賀県;和歌山県)のリストが表示されます。
《 VBAコード 》
Option Compare Database
Private Sub MyComboSet(v As Long)
If v = 1 Then
Me!コンボ0.RowSource = "茨城県;栃木県;群馬県;埼玉県;千葉県;東京都;神奈川県"
ElseIf v = 2 Then
Me!コンボ0.RowSource = "大阪府;京都府;兵庫県;奈良県;三重県;滋賀県;和歌山県"
End If
End Sub
Private Sub フレーム6_AfterUpdate()
If フレーム6.Value = 1 Then
MyComboSet (1)
ElseIf フレーム6.Value = 2 Then
MyComboSet (2)
End If
End Sub
Private Sub Form_Load()
Me!コンボ0.RowSourceType = "value list"
Me!フレーム6 = 1
MyComboSet (1)
End Sub