オートフィルターをフォーム(VBA)で表現
いつも大変お世話になっております。
データベースをExcelで作っており、
人の登録・削除、また指定した人のデータグラフなど様々なことをします。
データ例としましては、
番号 名前 出身
その中で、人を絞り込むためのフォームに
UserForm1
combobox1
combobox2
combobox3
・
・
・
と、10個程度のコンボボックスを配置してます。
そのコンボボックスには、フィルターをかける内容が記載されており、
-----------データ例-----------
No,氏名,郵便番号,住所,クラス,生年月日,年齢,趣味
0001,小林 博,102-0093,東京,A,1966/3/8,47,パソコン
0002,山崎 恵,212-0000,神奈川,B,1982/5/29,31,サーフィン
0003,桑野 雅寛,106-0032,大阪,C,1954/8/3,59,漫画
0004,樋渡 宏,101-0021,東京,D,1981/3/14,32,パソコン
0005,海田 健司,590-0057,大阪,E,1960/5/22,53,アニメ
0006,山崎 恵,212-0000,神奈川,A,1982/5/29,31,パソコン
0007,市川 耕作,150-0002,東京,B,1965/8/21,38,サーフィン
0008,山田 英範,836-0022,福岡,C,1946/12/24,57,パソコン
0009,小野 慶一,440-0034,愛知,D,1942/8/16,61,小説
0010,奥田 光昭,151-0053,東京,B,1943/6/18,61,パソコン
0011,榎本 香緒里,259-1219,神奈川,E,1961/5/30,43,漫画
0012,永島 豊,140-0002,東京,E,1949/8/31,54,パソコン
0013,北村 祥徳,899-4315,鹿児島,C,1950/11/25,53,アニメ
0014,土橋 一登,107-0052,東京,D,1945/6/25,59,小説
0015,平澤 秀樹,722-0041,広島,A,1956/1/29,48,サーフィン
0016,角居 弘之,107-0061,東京,E,1949/3/9,55,パソコン
----------------------------------
Excelのデータ⇒区切り位置⇒カンマ
と選択して使ってください。
例えば、上記のようなデータがあるとします。
フォームは
Form1
Label1 Combobox1
Label2 Combobox2
Label3 Combobox3
Label4 Combobox4
Label5 Combobox5
Label6 Combobox6
Label7 Combobox7
Label8 Combobox8
上記のような配置になっており、
LabelのCaptionは下記の通りです。
Label1 No
Label2 氏名
Label3 郵便番号
Label4 住所
Label5 クラス
Label6 生年月日
Label7 年齢
Label8 趣味
一致したデータをどんどん絞っていくわけなのですが、
絞った(Comboboxを選択確定した)後、Comboboxのデータを
絞った後に表示される項目のみ表示させたいと思っています。
例えば、Combobox5を
「神奈川」と選択したとします。
そしたら、
Combobox1のリストは
2
6
11
しか選択できないようにしたいのです。
オートフィルタそのものを
VBAのフォームに置き換えるような感じです。
このようなことは可能でしょうか?
可視セルの重複しないセルを取得するのは
とても大変なのですが、何か良い方法は無いでしょうか?
話がごちゃごちゃなってきましたので、
やりたいことをまとめます。
●可視セルの列(1列ずつ)の、重複しないデータを取得←やり方がわかりません。
●AfterUpdate(たしかコレだったような・・・)を使い
コンボボックスを選ぶと絞込み←ここまでは出来ます
そして、絞り込んだ後の可視セル重複しないデータを取得
☆要するに、オートフィルタをフォーム上(VBA)で実現したい!
ということです。
以上、よろしくお願い致します。
お礼
bon459さん、早速のご連絡ありがとうございます! DoEvetsを入れましたら出来ました! 本当に何度もありがとうございました!