エクセル複数セルのリストの連動(分岐でなく組み合わせ)

20191119備忘録 エクセル複数セルのリストの連動(分岐でなく組み合わせ)について
 
「入力規則で複数のドロップダウンリストを連動させる」など、
セルのリスト(+セル範囲に名前を付ける)をリストの結果によって、次のリストの候補を変える(名前によって変更)方法がある。
 
エクセルのVBAを使わないので楽だが、
リスト結果を連動させる場合で、3個以上の場合は注意が必要な気がする。
 
上記方法は、「分岐」の場合は、複数リストが連動しても問題ない。
「セル1の結果を受けて、セル2の結果を出し、それを受けてセル3のリストを出す」は、できる。
(例えば、動物・人間→犬・猫→チワワ・柴犬など分岐)
(分岐の場合は、一つ前のセルの値を見ればいい。)

しかし、「組み合わせ」の場合は、上記方法ではできない気がする。
「セル1の結果と、セル2の結果の組み合わせによって、それを受けてセル3のリストを出す」というケース。
(例えば、収入・支出がセル1、会費区分がセル2、大項目がセル3(以下中項目、小項目が続く)のように、セル1とセル2が組み合わせによって以降のリスト候補が異なる場合)
(複数のセルの状態によって当該セルのリストを変える必要がある)
 
下記は、リストの組み合わせのパターンをVBAで作成(まだ作成中)
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Application.Intersect(ActiveCell, Range("大項目")) Is Nothing Then '大項目のセルが選択された場合
    Else
         With Range("大項目").Validation  '入力規則変更
            .Delete
            '以下組み合わせの分岐入れる
            '「収入・支出」、「会費区分」の組み合わせによって大項目のリストを変更
            If ActiveCell.Offset(0, -2) = "収入" And ActiveCell.Offset(0, -1) <> "" Then '収入は会費区分は共通
                .Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="=大項目1"
            ElseIf ActiveCell.Offset(0, -2) = "支出" And ActiveCell.Offset(0, -1) = "会計A" Then
           
                .Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="=大項目2"
               
            ElseIf ActiveCell.Offset(0, -2) = "支出" And ActiveCell.Offset(0, -1) = "会計B" Then
           
                .Add Type:=xlValidateList, Operator:=xlEqual, Formula1:="=大項目3"
               
            Else
               
            End If
        End With
      End If
End Sub
今回、なるべくVBAを使わないで、エクセルファイルを作成しようと思ったが、能力不足でVBAを使うことに・・・。
しかし、VBAを避けて、関数や範囲の名前を多用するのも、それはそれで、ややこしい気がします。