コンボボックス1の値に応じてコンボボックス2のリストを変化させるには?

Question 80.6 Excel VBA Borad (掲示板)より Previous Next
ワークシート はじめまして・・・。 超ド級の初心者です。
EXCELに、右図のListがあるとします。
1つ目のコンボボックスで文具を選択したとき、文具に関するデータしか出ないようにするにはどうすれば、良いでしょうか?
文具 => えんぴつ・ノート・ペン
PC => キーボード・マウス が表示されるようにしたいのですが、教授いただけますでしょうか?? よろしくお願いいたします。
なお、コンボボックスは、図のシートと同じBook内のシート名:Sheet1へ、コントロールツールボックスから追加したものです。
Answer   2007.2.1 シロ
コンボボックス1の値に応じて、コンボボックス2のリストを変化させたいのですね。
色々な方法があるうちの一例ですが、質問の例のように、選択肢の数が少ない場合は以下のようにするのが簡単なような気がします。
ワークシートのコンボボックス
Private Sub ComboBox1_Change()
    Dim Pc
    Dim Bng
    Pc = Array("キーボード", "マウス")
    Bng = Array("えんぴつ", "ノート", "ペン")
    With Me
        Select Case .ComboBox1.Value
            Case "PC": .ComboBox2.List = Pc
            Case "文具": .ComboBox2.List = Bng
        End Select
        .ComboBox2.ListIndex = 0
    End With
End Sub
    
Private Sub ComboBox1_GotFocus()
    Dim myItem
    myItem = Array("文具", "PC")
    Me.ComboBox1.List = myItem
End Sub
Sheet1のシート見出しを右クリックして、コードの表示をクリックした時に出てくる、コードウィンドウに貼り付けてくださいね。 コンボボックスのオブジェクト名はそれぞれ、ComboBox1、ComboBox2 とします。
ありがとうございました
大変有難きご教授有難うございました。私も頑張って、シロさんのような立派なVBを組める人間になろうと思います。(^^)

 

Excel VBA Macro