VBAでドロップダウン双方向の連動
ドロップダウン1とドロップダウン2があるとします。
ドロップダウン1には選択肢AとBが格納されています。
ドロップダウン1でAを選んだ場合は、ドロップダウン2で複数の選択肢を表示させます。
ドロップダウン1でBを選んだ場合は、ドロップダウン2で選択肢は表示させず、NULLを受け取りたいです。(全角スペースで何もないように見せるのは無し)
現在ですが、ドロップダウン1でAを選びドロップダウン2で選択したあと、ドロップダウン1をBに変えてもドロップダウン2の選択肢がそのまま残ってしまいます。
ドロップダウン2に既にデータが入っていたとしても、その後でドロップダウン1をBに変更した場合セルをクリアさせたいです。
また、空白の選択肢を作る(もしくは選択肢を表示させない)場合の対処法として、よく全角スペースを入れる手段があると思いますが、今回の場合はこれを避けたいです。
別ウィンドウでコンボボックスを出したりするのではなく、セル内のドロップダウンで上記のような仕組みを作ることは可能でしょうか?
現在以下のようなコードを書いてみたのですが、双方向の連動ということしかできず、この形式だと下のような問題点が発生してしまいます。
・選択肢1つに対して連動する選択肢も1つであること
・選択肢なしにするということが達成できていないこと
これを作るにはどうしたらいいのか、知恵を貸していただけたらと思います。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRow As Long
If Not Intersect(Target, Range("A1:B1")) Is Nothing Then
Application.EnableEvents = False
If Target.Address(0, 0) = "A1" Then
myRow = WorksheetFunction.Match(Range("A1"), Columns(4), 0)
Range("B1") = Range("E" & myRow)
Else
myRow = WorksheetFunction.Match(Range("B1"), Columns(5), 0)
Range("A1") = Range("D" & myRow)
End If
Application.EnableEvents = True
End If
End Sub
0 likes