メインコンテンツへスキップ

Excelで動的なカスケードリストボックスを作成するにはどうすればよいですか?

Excelでカスケード検証ドロップダウンリストを作成する方法を知っているかもしれません。 しかし、Excelで動的なカスケードリストボックスを作成するにはどうすればよいですか? この記事では、それを停止するためのVBAメソッドを紹介します。

VBAコードを使用して動的なカスケードリストボックスを作成する


VBAコードを使用して動的なカスケードリストボックスを作成する

以下のスクリーンショットに示すように、Drink列の一意の値を含む親リストボックスを作成し、親リストボックスでの選択に基づいてXNUMX番目のリストボックスに対応するすべての値を表示する必要があります。 次のVBAコードは、それを実現するのに役立ちます。 次のようにしてください。

1.まず、Drink列からすべての一意の値を抽出する必要があります。 空白のセルを選択し、配列数式を入力します =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") 数式バー、を押して Ctrlキー + シフト + 入力します キー。 次に、をドラッグします フィルハンドル すべての一意の値を取得します。 スクリーンショットを参照してください:

Note:式では、 $A$2:$A$11 一意の値を抽出する範囲です。 J1は、数式が配置されている上のセルです。

先端:数式を覚えて処理するのが難しい場合は、 重複セルと一意セルを選択します の有用性 Kutools for Excel 列からすべての一意の値をすばやく抽出するのに適しています。

抽出する一意の値が含まれている列を選択してください。 次に、をクリックしてユーティリティを有効にします クツール > 選択 > 重複セルと一意セルを選択します。 の中に 重複セルと一意セルを選択します ダイアログボックスで すべてユニーク(最初の複製を含む) オプションをクリックして OK ボタン。 次に、すべての一意の値が列で選択されます。 それらをコピーして新しい場所に貼り付けてください。 スクリーンショットを参照してください:

Kutools for Excel:200以上の便利なExcelアドインがあり、60日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!

2.をクリックして、XNUMXつのリストボックスを別々に挿入します Developer > インセット > リストボックス(ActiveXコントロール)。 スクリーンショットを参照してください:

3.親リストボックスを右クリックして、 プロパティ コンテキストメニューから。 の中に プロパティ ダイアログボックスで、 (氏名) 〜へのフィールド ドリンク または必要に応じて他の名前を入力し、抽出された一意の値を含むセル範囲を リストフィル範囲 フィールドに移動し、ダイアログを閉じます。

4.手順3を繰り返して、XNUMX番目のリストボックスを変更します。 (氏名) のアイテムへのフィールド プロパティ ダイアログボックス。

5.シートタブを右クリックして、 コードを表示 右クリックメニューから。 次に、以下のVBAコードを[コード]ウィンドウにコピーします。 スクリーンショットを参照してください:

VBAコード:Excelで動的カスケードリストボックスを作成する

Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
    Dim I, xRows As Long
    Dim xRg As Range
    Dim xRegStr As String
    Application.ScreenUpdating = False
    xRegStr = Me.Drink.Text
    Set xRg = Range("A2:A11")
    xRows = xRg.Rows.Count
    If xRegStr <> xPreStr Then
    Me.Item.Clear
   'Me.OtherListBoxName.Clear
    Set xRg = xRg(1)
    For I = 1 To xRows
        If xRg.Offset(I - 1).Value = xRegStr Then
            Me.Item.AddItem xRg.Offset(I - 1, 1).Value
            'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
        End If
    Next
    xPreStr = xRegStr
    End If
    Application.ScreenUpdating = True
End Sub

ノート:コードでは、DrinkとItemはXNUMXつのリストボックスの名前です。それらを独自の名前に変更してください。

6。 プレス 他の + Q を閉じるためのキー アプリケーション向け Microsoft Visual Basic 窓。

7.をクリックしてデザインモードをオフにします Developer > デザインモード.

これ以降、親リストボックスでコーヒーなどの飲み物を選択すると、XNUMX番目のリストボックスにすべてのコーヒーアイテムが表示されます。 [お茶またはワイン]を選択すると、XNUMX番目のリストボックスにお茶またはワインのアイテムのみが表示されます。 スクリーンショットを参照してください:


関連記事:

最高のオフィス生産性向上ツール

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi

What does "Me" refer to in the code and how will the code change if I have a MultiSelect list box?

Regards
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations