ヒント:他の言語はGoogle翻訳されています。 訪問することができます English このリンクのバージョン。
ログイン
x
or
x
x
LPI ID 登録
x

or

Excelでダイナミックカスケードリストボックスを作成する方法

Excelでカスケード検証ドロップダウンリストを作成する方法を知っているかもしれません。 ただし、Excelでダイナミックカスケードリストボックスを作成する方法は? この記事では、VBAの方法を紹介します。

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

OfficeタブOfficeでタブ付き編集とブラウジングを有効にし、作業をより簡単にします...
Kutools for Excelは、ほとんどの問題を解決し、生産性を80%向上させます
  • 何でも再利用: 最も使用されている式や複雑な式、チャート、その他をお気に入りに追加し、将来的にすぐに再利用できます。
  • 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換します。
  • マージツール:複数のワークブックとシートを1つに; データを失うことなく複数のセル/行/列を結合します。 重複する行と合計をマージします。
  • 分割ツール:値に基づいてデータを複数のシートに分割します。 1つのワークブックから複数のExcel、PDF、またはCSVファイル。 1列から複数列。
  • 貼り付けスキップ 非表示/フィルターされた行。 カウントアンドサム 背景色別; パーソナライズされた電子メールを一括して複数の受信者に送信します。
  • スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 ソート 週、日、頻度などにより; フィルタ 太字、式、コメントで...
  • 300の強力な機能以上。 Office 2007-2019および365で動作します。 すべての言語をサポートしています。 企業または組織に簡単に展開できます。

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


下のスクリーンショットに示すように、Drink列の一意の値を含む親リストボックスを作成し、親リストボックスの選択に基づいて2番目のリストボックスにすべての対応する値を表示する必要があります。 次の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は、数式がある場所の上にあるセルです。

先端:フォーミュラが覚えて扱いにくすぎる場合は、 Duplicate&Unique Cellsを選択 の有用性 Kutools for Excel カラムからすべてのユニークな値をすばやく抽出するのに適しています。

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

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

2。 2つのリストボックスを個別に挿入するには、 ディベロッパー > インセット > リストボックス(ActiveXコントロール)。 スクリーンショットを見る:

3。 親リストボックスを右クリックし、 プロパティ コンテキストメニューから選択します。 の中に プロパティ ダイアログボックスで、 (氏名) 〜へのフィールド ドリンク または必要に応じて他の名前、セル範囲を入力します。 リスト充填領域 ダイアログを閉じます。

4。 ステップ3を繰り返して、2番目のリストボックスを変更します。 (氏名) アイテムを項目に プロパティ ダイアログボックス。

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は2つのリストボックスの名前で、それぞれの名前に変更します。

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

7。 をクリックしてデザインモードをオフにします。 ディベロッパー > デザインモード.

これから、親リストボックスでコーヒーなどの飲み物を選択すると、すべてのコーヒーアイテムが2番目のアイテムに表示されます。 Select TeaまたはWineは、2番目のリストボックスに茶またはワインの項目のみを表示します。 スクリーンショットを見る:


関連記事:


Kutools for Excelは、ほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート そして、以前に使用したもの; セルを暗号化する パスワード付き メーリングリストの作成 そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストや数式を簡単に編集する) レイアウトを読む (多数のセルを簡単に読んで編集できます)。 フィルター範囲に貼り付ける...
  • セル/行/列を結合 データを失うことなく; セルコンテンツの分割。 重複する行/列を結合する...重複セルの防止。 範囲の比較...
  • 重複または一意を選択します空白行を選択 (すべてのセルは空です)。 スーパー検索とファジー検索 多くのワークブックで。 ランダム選択
  • 完全コピー 式の参照を変更せずに複数のセル。 参照を自動作成 複数のシートに 箇条書きを挿入、チェックボックスなど
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷 セルのコンテンツとコメント間の変換...
  • スーパーフィルター (保存して他のシートにフィルタ方式を適用する)。 高度な並べ替え 月/週/日、頻度などによる。 特殊フィルター 太字、斜体で...
  • ワークブックとワークシートを組み合わせる; キー列に基づいて表をマージします。 データを複数のシートに分割する; xls、xlsx、およびPDFのバッチ変換...
  • 300を超える強力な機能。 Office / Excel 2007-2019および365をサポートします。 すべての言語をサポートします。 企業または組織に簡単に展開できます。 フル機能の30日間の無料トライアル。
KTEタブ201905

OfficeタブはOfficeにタブ付きインターフェイスを提供し、作業をより簡単にします

  • Word、Excel、PowerPointでタブ付き編集と読み取りを有効にする、出版社、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを削減します。
オフィシタブ底
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.