Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

複数の依存ドロップダウンを作成することは、MS Excel では常に課題でした。 2 つのドロップダウン リスト間に依存関係または関係がある場合、この種のドロップダウン リストが必要です。通常、さまざまな式を使用してこれを作成します または Excel で適切なオプションを変更します。ただし、Excel VBA コードを使用して複数のドロップダウン リストを作成する簡単な方法がいくつかあります。この記事では、Excel で VBA コードを使用して複数のドロップダウン リストを作成するさまざまな方法を紹介します。

続きを読む: Excel でドロップダウン リストを作成する方法 (独立型および依存型)

Excel の依存ドロップダウン リストとは

メイン プロセスに進む前に、依存するドロップダウン リストが Excel でどのようなものかを理解しましょう。 2 つ以上のドロップダウン リスト間に依存関係がある場合、Excel ではそれらを依存ドロップダウン リストと呼びます。下の図は、従属ドロップダウン リストに関する明確な概念を表しています。

複数依存ドロップダウン リスト Excel VBA (3 つの方法) 複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ここでわかるように、Category と Food の 2 つのドロップダウン リストは、完全に 2 つの依存ドロップダウン リストです。カテゴリの選択に応じて、ここで食品のリストを定義します。したがって、複数のカスケード ドロップダウン リストがどのように機能するか。

続きを読む: Excel で動的依存ドロップダウン リストを作成する方法

複数の依存ドロップダウン リスト Excel VBA を作成する 3 つの方法

1. Excel VBA のドロップダウン リストで複数選択する方法

プロジェクト名とプロジェクト メンバーという名前の 2 つのリストがあるとします。プロジェクトごとに、ドロップダウン リストを使用して 1 人または複数のメンバーを割り当てます。

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 1: デベロッパー に移動 タブを開き、Visual Basic を開きます (ショートカット Alt + F11 )

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 2: それぞれの VBAProject メニューからそれぞれのワークシートに移動します。

ステップ 3: 次に、VBA コンソールで次のコードを記述します

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

コード:

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: プロジェクトメンバー列で複数の名前を選択してください

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 5: すべてのセルは、ドロップダウン リストから複数選択できます

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

続きを読む: Excel でドロップダウン リストから複数選択する方法

2. Excel VBA で複数の依存ドロップダウン リストを作成する

野菜、果物、乳製品など、さまざまなカテゴリの食品のデータセットを用意しましょう。次に、カテゴリに従って食品を検索します。カテゴリを果物として選択した場合と同様に、食品列で使用可能なアイテムはラズベリー、アプリコット、ピーチ、マンゴーである必要があります。そのため、食品はカテゴリに応じて利用できる必要があります。 Category と Food の間には依存関係があります。

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 1: 方法 1 と同じ手順に従って VBA コンソールを開きます (手順 1)。 とステップ 2 ) 次に、次のコードを記述します

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

コード:

野菜のドロップダウン リストを作成する場合:

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

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

コード:

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 を呼び出します 野菜リストを作成して表示する機能

したがって、完全なコードは次のようになります:

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 3: ワークシートに移動し、ドロップダウン リストから任意のカテゴリを選択します

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 4: 次に、関連するアイテムが Food 列で利用可能になります

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 5: 最終的な出力は次のようになります:

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

3. Excel VBA で複数の依存ドロップダウン リストをクリアする

前のセクションでは、関連する一致リストを Excel で取得する方法のみを見てきました。ただし、自動的に削除されない不一致の選択が存在する場合があります。この種の問題を防ぐために定式化することができます.

別のオプションは、最初のドロップダウンで選択した後、マクロを使用して依存セルをクリアすることです。これにより、選択の不一致を防ぐことができます。

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

ステップ 1: 方法 1 と同じ手順に従って VBA コンソールを開きます (手順 1)。 とステップ 2 ) 次に、次のコードを記述します

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

コード:

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 から任意のアイテムを選択します 列を開き、 カテゴリ から別のカテゴリを選択してみてください そして何が起こるか見てください

最初

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

2番目

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

最終出力

複数依存ドロップダウン リスト Excel VBA (3 つの方法)

続きを読む: Excel でドロップダウン リストを削除する方法

覚えておくべきこと

一般的なエラー いつ表示されるか
リストを削除できません データ検証で、許可 がリストと等しくなく、ソースが正しく選択されていない場合、ドロップダウン リストを削除できないか、VBA コードを使用してリストを削除します。
更新値の問題 通常、依存するドロップダウン リストで、一致しない値がある場合、自動的に更新されません。数式または VBA コード (この記事の方法 3) を使用して、値を自動的に更新できます。

結論

これらは、複数の従属ドロップダウン リスト Excel VBA を作成または操作するいくつかの方法です。すべてのメソッドとそれぞれの例を示しましたが、他にも多くの反復があります。また、使用される関数の基本についても説明しました。これを達成する他の方法がある場合は、お気軽にお知らせください。

参考文献

  • Excel で複数列のドロップダウン リストを作成する方法 (3 つの方法)
  • 選択に応じた Excel ドロップダウン リスト
  • IF ステートメントを使用して Excel でドロップダウン リストを作成する方法
  • Excel で別のシートからドロップダウン リストを作成する (2 つの方法)
  • Excel でドロップダウン リストを編集する方法 (4 つの基本的なアプローチ)
  • Excel のドロップダウン リスト付き VLOOKUP

  1. 複数の Excel ファイルを CSV に変換する方法 (3 つの適切な方法)

    CSV の完全な形式 カンマ区切り値です。つまり、CSV の t 値 コンマのみで区切られています。これは、データベース管理に不可欠なデータ形式です。また、多くのデータ管理プロジェクトで Excel を使用しています。したがって、これら 2 つのフォーマット間でデータを交換するのはごく普通のことです。 CSV は簡単に変換できますが、 複数の Excel を CSV に変換するために、テキストを列に変換する機能を使用してファイルを Excel にフォーマットします。 今日まで存在する直接的な方法はありません。 VBA を使用する必要があります またはこの目的のためのオンラインツール。複数の E

  2. Excel VBA:ユーザーフォームを全画面表示する (4 つの簡単な方法)

    多くの場合、ユーザーフォーム 私たちが生成するものは非常に大きく、小さな場所に多くの情報が含まれています。それらすべてがぎゅうぎゅう詰めの場所にあると、ユーザーフォームの明瞭さが損なわれる可能性があります . ユーザーフォーム を表示する方法を知りたい場合 VBA を使用して Excel で全画面表示する場合は、この記事が役立つ場合があります。この記事では、 ユーザーフォーム を表示する方法について説明します 詳細な説明を含む VBA を使用した Excel の全画面表示。 この練習用ワークブックを以下からダウンロードしてください。 Excel で VBA を使用して全画面表示でユーザー