Excelで動的なカスケードリストボックスを作成するにはどうすればよいですか?
Excelでカスケード検証ドロップダウンリストを作成する方法を知っているかもしれません。 しかし、Excelで動的なカスケードリストボックスを作成するにはどうすればよいですか? この記事では、それを停止するためのVBAメソッドを紹介します。
VBAコードを使用して動的なカスケードリストボックスを作成する
- 何でも再利用: 最もよく使用される、または複雑な数式、グラフなどをお気に入りに追加して、後ですぐに再利用できます。
- 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換します。
- マージツール:複数のワークブックとシートをXNUMXつに。 データを失うことなく複数のセル/行/列をマージします。 重複する行と合計をマージします。
- 分割ツール:値に基づいてデータを複数のシートに分割します。 XNUMXつのワークブックから複数のExcel、PDF、またはCSVファイル。 XNUMX列から複数列。
- 貼り付けスキップ 非表示/フィルタリングされた行; カウントと合計 背景色別; パーソナライズされた電子メールを複数の受信者にまとめて送信します。
- スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 並び替え 週、日、頻度など。 フィルタ 太字、数式、コメント...
- 300 以上の強力な機能。 Office 2007-2021 および 365 で動作します。 すべての言語をサポートします。 企業や組織に簡単に導入できます。
VBAコードを使用して動的なカスケードリストボックスを作成する
以下のスクリーンショットに示すように、Drink列の一意の値を含む親リストボックスを作成し、親リストボックスでの選択に基づいてXNUMX番目のリストボックスに対応するすべての値を表示する必要があります。 次のVBAコードは、それを実現するのに役立ちます。 次のようにしてください。
1.まず、Drink列からすべての一意の値を抽出する必要があります。 空白のセルを選択し、配列数式を入力します =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") に 数式バー、を押して Ctrlキー + シフト + 入力します キー。 次に、をドラッグします フィルハンドル すべての一意の値を取得します。 スクリーンショットを参照してください:
注意:式では、 $A$2:$A$11 一意の値を抽出する範囲です。 J1は、数式が配置されている上のセルです。
先端:数式を覚えて処理するのが難しい場合は、 重複セルと一意セルを選択します の有用性 Kutools for Excel 列からすべての一意の値をすばやく抽出するのに適しています。
抽出する一意の値が含まれている列を選択してください。 次に、をクリックしてユーティリティを有効にします クツール > 次の項目を選択します。: > 重複セルと一意セルを選択します。 の中に 重複セルと一意セルを選択します ダイアログボックスで すべてユニーク(最初の複製を含む) オプションをクリックして OK ボタン。 次に、すべての一意の値が列で選択されます。 それらをコピーして新しい場所に貼り付けてください。 スクリーンショットを参照してください:
Kutools for Excel:200以上の便利なExcelアドインがあり、60日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!
2.をクリックして、XNUMXつのリストボックスを別々に挿入します ディベロッパー > インセット > リストボックス(ActiveXコントロール)。 スクリーンショットを参照してください:
3.親リストボックスを右クリックして、 プロパティ コンテキストメニューから。 の中に プロパティ ダイアログボックスで、 (氏名) 〜へのフィールド ドリンク または必要に応じて他の名前を入力し、抽出された一意の値を含むセル範囲を ListFillRange フィールドに移動し、ダイアログを閉じます。
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.をクリックしてデザインモードをオフにします ディベロッパー > デザインモード.
これ以降、親リストボックスでコーヒーなどの飲み物を選択すると、XNUMX番目のリストボックスにすべてのコーヒーアイテムが表示されます。 [お茶またはワイン]を選択すると、XNUMX番目のリストボックスにお茶またはワインのアイテムのみが表示されます。 スクリーンショットを参照してください:
関連記事:
- Excelで変更を選択した後、依存するドロップダウンリストセルをクリアするにはどうすればよいですか?
- Excelで依存カスケードドロップダウンリストを作成するにはどうすればよいですか?
- Excelのドロップダウンリストで値を選択するときに他のセルに自動入力するにはどうすればよいですか?
- Excelでドロップダウンリストカレンダーを作成するにはどうすればよいですか?
- H選択したActiveXリストボックスをExcelに保存または保持する必要がありますか?
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
