リンクされたドロップダウンリストですか?

リンクされたドロップダウンリストですか?

Excelで2つのドロップダウンリストをリンクしたいのですが、解決策を探すといつもカスケードドロップダウン リスト。必要なのは、同じオプションを持つ 2 つのドロップダウン リストです。一方を変更すると、もう一方も変更されます。

単純に相互参照を試してみましたが、もちろん循環参照エラーが発生します。たくさんあるので、できれば VBA を使わずにこれをやりたいのですが、それが不可能な場合は理解します。

答え1

両方のセルを編集可能にしたい場合、説明していることは VBA なしでは実行できません。

ご存知のとおり、これらの数式を相互に参照すると循環参照が発生します。たとえそれが機能したとしても、ドロップダウンから値を選択するとすぐに、すべての数式が上書きされます。

したがって、VBA が唯一の選択肢となります。セルが 2 つの異なるシートにある場合、コードは次のようになります。

Sheet1 のシート モジュールで:

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell A1
If Not Intersect(Target, Range("A1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet2, cell b1
    ThisWorkbook.Worksheets("Sheet2").Range("B1") = Range("A1")
    Application.EnableEvents = True
End If
End Sub

Sheet2のシートモジュール

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell B1 on sheet 2
If Not Intersect(Target, Range("B1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet1, cell A1
    ThisWorkbook.Worksheets("Sheet1").Range("A1") = Range("B1")
    Application.EnableEvents = True
End If
End Sub

答え2

Teylyn が述べたように、希望どおりに動作させることは不可能です。

VBA 以外の別の回避策は、データ検証のドロップダウン リストの代わりにフォーム コントロールのドロップダウン リストを使用することです。

  • 開発タブに移動します(表示されない場合は指示に従って有効にします)ここ) - 挿入 - フォーム コントロール - 「コンボ ボックス (フォーム コントロール)」
  • 挿入してセルを覆うようにサイズを変更します
  • 右クリックして「コントロール」を選択します
  • 「入力範囲」と「セルリンク」を入力します
  • それをコピーして別の場所に貼り付けます。両方とも同じセル リンクを持つため、どちらかを変更すると、もう一方も更新されます。

関連情報