こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA UserFormで選択リスト

VBAは多少はかじりましたが、UserFormを使うのは初めてです。これまではDialogSheetでやってました。
しかし今回は、DialogSheetでは大分類小分類に分けたリストはできそうもないのでUserFormならマルチページ機能があるのでなんとかなるのではと思いました。

やりたいことは約千種類あるデータを、まず大分類のカテゴリーに10区分し、マルチページとします。
大分類の各ページをさらにマルチページで小区分し、各5区分とします。都合10*5で50ページとなります。

小区分の各ページにそれぞれリストボックスを配置し、エクセルシートのデータリストからデータを表示し、エクセル使用者が選択できるようにします。

こんなことはマルチページで可能でしょうか?それともタブストリップですか?
参考となるコードなどもご教示いただけると幸いです。

よろしくお願いします。

投稿日時 - 2005-03-11 00:13:32

QNo.1262311

困ってます

質問者が選んだベストアンサー

Web上のFAQの様なデザインにしてはどうでしょう?
大分類コンポポックス(10リスト)
中分類コンポポックス(5リスト)
小分類コンボボックス(データリスト参照数)
表示コマンドボタン
の4つを用意して、それぞれのコンポポックスは
上位コンボボックスの Change イベントでリスト内容を
更新するようにしては?

マルチページとタブストリップは、
ラベル名の更新とか、アクティブページの所得とか
その他イベント管理が大変ですよ。
またラベル名が長すぎると見栄えが悪くなりますし。

投稿日時 - 2005-03-11 09:50:27

お礼

ありがとうございました。
マルチページとタブストリップは、おすすめじゃないですか。
やはり、ユーザーフォームを作ったこともないのに身の程をしらない質問をしてしまったようです。

コンボボックスを3つならDialogSheetでもなんとか出来ますしね。

投稿日時 - 2005-03-11 12:30:50

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>...都合10*5で50ページとなります。

マルチページでもタブストリップでも50ページもあったらユーザーが大変ですし、制御も大変です。

フォームに

・大分類用コンボボックス
・小分類用コンボボックス
・結果表示用リストボックス

を配置し、各コンボボックスはChangeイベントで連動させ、絞込み検索させる仕組みの方が良いと思います。

ACCESS版でしたら、「絞込み コンボボックス」でWEB検索すると手法が数多くヒットします。ACCESSではSQLでレコードソースを切り替えてコンボボックスにセットしますが、考え方はEXCELで実装する際も同じですから、参考にしてみてはどうでしょうか?

EXCELなら、

1. 大分類の重複なしリストを大分類用コンボボックスに ADD ITEM
2. 大分類選択のChangeイベントで、オートフィルター+可視セルからデータを取得し、同じく重複なしのデータを小文類にADD ITEM
3. 小分類選択のChangeイベントで、オートフィルター+可視セルからデータを取得し、リストボックスに ADD ITEM

こんな感じの流れでしょうか。

>やりたいことは約千種類あるデータを...

データがイメージできませんので、抽象的なアドバイスになってしまいますが。

ちなみに、重複の無いリスト作成にはDictionaryオブジェクトを利用すると簡単です。

投稿日時 - 2005-03-11 23:19:02

お礼

ありがとうございました。
勉強します。

投稿日時 - 2005-03-15 10:54:49

あなたにオススメの質問