複数依存ドロップダウン リスト Excel VBA (3 つの方法)
複数の依存ドロップダウンを作成することは、MS Excel では常に課題でした。 2 つのドロップダウン リスト間に依存関係または関係がある場合、この種のドロップダウン リストが必要です。通常、さまざまな式を使用してこれを作成します または Excel で適切なオプションを変更します。ただし、Excel VBA コードを使用して複数のドロップダウン リストを作成する簡単な方法がいくつかあります。この記事では、Excel で VBA コードを使用して複数のドロップダウン リストを作成するさまざまな方法を紹介します。
続きを読む: Excel でドロップダウン リストを作成する方法 (独立型および依存型)
Excel の依存ドロップダウン リストとは
メイン プロセスに進む前に、依存するドロップダウン リストが Excel でどのようなものかを理解しましょう。 2 つ以上のドロップダウン リスト間に依存関係がある場合、Excel ではそれらを依存ドロップダウン リストと呼びます。下の図は、従属ドロップダウン リストに関する明確な概念を表しています。
ここでわかるように、Category と Food の 2 つのドロップダウン リストは、完全に 2 つの依存ドロップダウン リストです。カテゴリの選択に応じて、ここで食品のリストを定義します。したがって、複数のカスケード ドロップダウン リストがどのように機能するか。
続きを読む: Excel で動的依存ドロップダウン リストを作成する方法
複数の依存ドロップダウン リスト Excel VBA を作成する 3 つの方法
1. Excel VBA のドロップダウン リストで複数選択する方法
プロジェクト名とプロジェクト メンバーという名前の 2 つのリストがあるとします。プロジェクトごとに、ドロップダウン リストを使用して 1 人または複数のメンバーを割り当てます。
ステップ 1: デベロッパー に移動 タブを開き、Visual Basic を開きます (ショートカット Alt + F11 )
ステップ 2: それぞれの VBAProject メニューからそれぞれのワークシートに移動します。
ステップ 3: 次に、VBA コンソールで次のコードを記述します
コード:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Old_value As String
Dim New_value As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Not Intersect(Target, Range("C4:C11")) Is Nothing Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
New_value = Target.Value
Application.Undo
Old_value = Target.Value
If Old_value = "" Then
Target.Value = New_value
Else
If InStr(1, Old_value, New_value) = 0 Then
Target.Value = Old_value & ", " & New_value
Else:
Target.Value = Old_value
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
ステップ 4: プロジェクトメンバー列で複数の名前を選択してください
ステップ 5: すべてのセルは、ドロップダウン リストから複数選択できます
続きを読む: Excel でドロップダウン リストから複数選択する方法
2. Excel VBA で複数の依存ドロップダウン リストを作成する
野菜、果物、乳製品など、さまざまなカテゴリの食品のデータセットを用意しましょう。次に、カテゴリに従って食品を検索します。カテゴリを果物として選択した場合と同様に、食品列で使用可能なアイテムはラズベリー、アプリコット、ピーチ、マンゴーである必要があります。そのため、食品はカテゴリに応じて利用できる必要があります。 Category と Food の間には依存関係があります。
ステップ 1: 方法 1 と同じ手順に従って VBA コンソールを開きます (手順 1)。 とステップ 2 ) 次に、次のコードを記述します
コード:
野菜のドロップダウン リストを作成する場合:
Sub Vegetable_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Vegetable_List"
End Sub
果物のドロップダウン リストを作成する場合:
Sub Fruit_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Fruits_list"
End Sub
乳製品のドロップダウン リストを作成する場合:
Sub Dairy_List()
Range("C4:C6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=Dairy_Product_List"
End Sub
この部分では、個々の食品のリストを作成し、ドロップダウン リストに保存しています。このリストは C4:C6 で利用可能になります
ステップ 2: ここで、範囲のメイン関数を記述する必要があります B4:B6
コード:
Private Sub Worksheet_Change(ByVal Target As Range)
Range("B4:B6").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Vegetable_List,Fruits_list,Dairy_Product_List"
If Range("B4:B6").Value = "Vegetable_List" Then
Call Vegetable_List
ElseIf Range("B4:B6").Value = "Fruits_list" Then
Call Fruit_List
ElseIf Range("B4:B6").Value = "Dairy_Product_List" Then
Call Dairy_List
Else
End If
コードの説明
- ここでは、B4:B6 のカテゴリにちなんで名付けられた別のリストを作成しています。 食品カテゴリの名前を含む範囲
- 次に、リストの値をチェックし、項目に従って分類します。この IF ELSE について ステートメントが使用されています。
- 一致する名前が見つかった場合は、CallBack メソッドを使用してリスト作成関数を呼び出しました。いいね
If Range(“B4:B6”).Value =“Vegetable_List” Then
Vegetable_List に電話
- セルの値が Vegetable_List と一致した場合 テキスト、次に Vegetable_List を呼び出します 野菜リストを作成して表示する機能
したがって、完全なコードは次のようになります:
ステップ 3: ワークシートに移動し、ドロップダウン リストから任意のカテゴリを選択します
ステップ 4: 次に、関連するアイテムが Food 列で利用可能になります
ステップ 5: 最終的な出力は次のようになります:
3. Excel VBA で複数の依存ドロップダウン リストをクリアする
前のセクションでは、関連する一致リストを Excel で取得する方法のみを見てきました。ただし、自動的に削除されない不一致の選択が存在する場合があります。この種の問題を防ぐために定式化することができます.
別のオプションは、最初のドロップダウンで選択した後、マクロを使用して依存セルをクリアすることです。これにより、選択の不一致を防ぐことができます。
ステップ 1: 方法 1 と同じ手順に従って VBA コンソールを開きます (手順 1)。 とステップ 2 ) 次に、次のコードを記述します
コード:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
If Target.Validation.Type = 3 Then
Application.EnableEvents = False
Target.Offset(0, 1).ClearContents
End If
End If
exitHandler:
Application.EnableEvents = True
Exit Sub
End Sub
ステップ 2: Food から任意のアイテムを選択します 列を開き、 カテゴリ から別のカテゴリを選択してみてください そして何が起こるか見てください
最初
2番目
最終出力
続きを読む: Excel でドロップダウン リストを削除する方法
覚えておくべきこと
一般的なエラー | いつ表示されるか |
---|---|
リストを削除できません | データ検証で、許可 がリストと等しくなく、ソースが正しく選択されていない場合、ドロップダウン リストを削除できないか、VBA コードを使用してリストを削除します。 |
更新値の問題 | 通常、依存するドロップダウン リストで、一致しない値がある場合、自動的に更新されません。数式または VBA コード (この記事の方法 3) を使用して、値を自動的に更新できます。 |
結論
これらは、複数の従属ドロップダウン リスト Excel VBA を作成または操作するいくつかの方法です。すべてのメソッドとそれぞれの例を示しましたが、他にも多くの反復があります。また、使用される関数の基本についても説明しました。これを達成する他の方法がある場合は、お気軽にお知らせください。
参考文献
- Excel で複数列のドロップダウン リストを作成する方法 (3 つの方法)
- 選択に応じた Excel ドロップダウン リスト
- IF ステートメントを使用して Excel でドロップダウン リストを作成する方法
- Excel で別のシートからドロップダウン リストを作成する (2 つの方法)
- Excel でドロップダウン リストを編集する方法 (4 つの基本的なアプローチ)
- Excel のドロップダウン リスト付き VLOOKUP
-
複数の Excel ファイルを CSV に変換する方法 (3 つの適切な方法)
CSV の完全な形式 カンマ区切り値です。つまり、CSV の t 値 コンマのみで区切られています。これは、データベース管理に不可欠なデータ形式です。また、多くのデータ管理プロジェクトで Excel を使用しています。したがって、これら 2 つのフォーマット間でデータを交換するのはごく普通のことです。 CSV は簡単に変換できますが、 複数の Excel を CSV に変換するために、テキストを列に変換する機能を使用してファイルを Excel にフォーマットします。 今日まで存在する直接的な方法はありません。 VBA を使用する必要があります またはこの目的のためのオンラインツール。複数の E
-
Excel VBA:ユーザーフォームを全画面表示する (4 つの簡単な方法)
多くの場合、ユーザーフォーム 私たちが生成するものは非常に大きく、小さな場所に多くの情報が含まれています。それらすべてがぎゅうぎゅう詰めの場所にあると、ユーザーフォームの明瞭さが損なわれる可能性があります . ユーザーフォーム を表示する方法を知りたい場合 VBA を使用して Excel で全画面表示する場合は、この記事が役立つ場合があります。この記事では、 ユーザーフォーム を表示する方法について説明します 詳細な説明を含む VBA を使用した Excel の全画面表示。 この練習用ワークブックを以下からダウンロードしてください。 Excel で VBA を使用して全画面表示でユーザー