コンボボックスの連動
こんにちは!
今回もVBAで分からないことがあったため、質問させて頂きます。
Excelは2003を使用しています。
画像のようなデータが、A1:D?まであったとします。
A列、B列、C列などの重複しないデータをプログラムを用いて
同じシート内(例として、「管理」シートとします。)に記載しています。
そのデータをコンボボックス上に表示することはできました。
そして、次にコンボボックス上に表示されたデータを選択した際に、
フィルターで絞込みをするように設定しています。
(図の例でいくと、りんごで絞込み)
「りんご」で絞込みをかけた際に、実際のリスト上にある
重複しないデータをコンボボックスに入れなおしたい?です。
重複しないデータの抽出方法が悪いとは思うのですが、
可視セル(指定列)の重複しないものを書くことはできるのでしょうか?
たぶん、重複しないデータを抽出する際の
範囲指定が悪いと思います。
色々書いてわからなくなったため、
やりたいことをまとめさせて頂きます。
●コンボボックスを押した際にフィルター絞込み(これは出来てます)
●絞り込んだ後、その他の列の重複しないデータをコンボボックスに入れなおす
あと別途、
●可視セル(タイトル行を除く)の範囲選択&データ取得方法(重複しないデータ取得も)
●フィルターをかけた際に、絞込み結果が0(空白)の場合、メッセージボックスを表示
情報不足かもしれませんが、回答よろしくお願い致します。
EndLineは、A1から下に下がった行番号を格納しています。(例)9
----------------------------------------------
On Error Resume Next 'データを登録する間、エラーを無視する
For i = 2 To EndLine '最終行までチェック
Mydata.Add Range("B" & i).Value, Range("B" & i).Value '名前の列の重複確認
Next i
On Error GoTo 0
'重複していないデータがMydataに格納されていく
For Each A In Mydata 'Mydataの内容をセルに書き出す。
Worksheets("管理").Cells(i, ROW_NUMBER).Value = A
i = i + 1
Next A
End Function
-------------------------------------------------
Function Combo_KOUSIN() 'コンボボックスのデータ更新
Dim EndLine As Long
Dim i As Long
ComboBox1.Clear
EndLine = EndCheck("F") ' ”F” 列の行数抽出
For i = 1 To EndLine
ComboBox1.AddItem Range("F" & i).Value
Next
上と同様に、combobox2,3,4も行う。
F列、G列、H列、I列などに重複しないデータがあります。
それを取得して、ComboBoxに格納します。