質問: A列 B列 C列 D列 E列 F列・・O列 1行 月度 店名 店員名 項目 数量 個数 合計 2行 1 東京 A子 初回 10 12 20 3行 1 東京 A子 5回目 20 40 21 4行 3 東京 A子 5回目 30 28 10 5行 4 東京 A子 初回 32 89 11 6行 1 大阪 C男 初回 11 13 12 7行 2 大阪 C男 5回目 77 22 211 8行 3 大阪 D子 初回 33 31 53 9行 1 京都 E子 最終 44 22 23 10行 2 京都 T男 初回 22 54 23 Sheet1(データベース)に上記のようにデータが約3000行あります。 「1月の東京店、A子の初回の合計は?」といった通常オートフィルタで抽出する作業をSheet2のシートで「絞込みしながら検索」するようにフォーム上でしたいのですが。 まず、リストボックス1で1月を選択すると、その抽出結果のみからリストボックス2で店名を選択。店名東京を選択すると同様にその抽出結果のみから店員名をリストボックス3で選択。同様にリストボックス4で項目「初回」を選択すると合計が表示されると言った具合にしたく思います。 参考までにリストボックスからの選択としていますが、よりベストな方法をご教授願います。 Accessで簡単に解決することと百も承知ですが・・・ ようは絞込みしながら検索していく手法を教えてください。
回答: 質問内容を具体化してみましたがかなり大変な作業です。まず、質問に対する疑問から、 1.リストボックスは表示→フォームのリストボックス?またはコントロールツールボックスのリストボックス? 2.『フォーム上でしたい』はユーザーフォームを使ってもいい?それともリストボックスのこと? 3.初期状態はどのような想定?全項目無選択? 4.リストボックスのリスト内容はソートする? 4.あるリストボックスを選択したら、他のリストボックスは当然連動して内容を変える? 5.最後に1件まで絞り込んだら2回目の絞込みは行う? やってみたことは、手順だけ上げると、(上記疑問は作り易い方にしました) 1.ユーザーフォームにコンボボックスを4つ配置 2.ユーザーフォームを開いたら初期設定で各コンボボックスにソートしたリストをセット 3.任意のコンボボックスで項目を選択したらオートフィルタ結果を表示してシート2にコピー 4.同時にコンボボックスのリスト内容を更新 5.1件になって再度絞り込みを行うために初期化ボタンを配置 概略、この位で実現できると思います。コントロール配列とかも使えないのでコードはかなり長いです。(書ききれません) 労多くして・・・の気がしますね。Accessでもゴタゴタするかもしれません。 >よりベストな方法をご教授願います 多分、リストボックスを作ることはExcelのオートフィルタ機能を、他の道具を使って実現するだけの話で得策でないような気がします。 余り回答らしくなっていないので、思いついた方法を挙げておきます。 シート1しか使いませんが、まずデータ→フィルタ→オートフィルタを実行しておきます。 A.メニューのウインドウから『新しいウインドウを開く』を選択します。 B.メニューのウインドウから整列→上下に並べて表示を選択 C.下のウインドウだけを200%~250%位に大きくします。 D.下のウインドウでツール→オプションで表示タグで 行番号、 シート見出し、 水平スクロールバー、 垂直スクロールバーのチェックをはずします。 E.A~D列と2行目までを表示するように下のウインドウの大きさを変えます。 コンボボックスを4つ並べたように見える? F.上のウインドウは大きくします。 G.下にあったウインドウを好きな位置に配置します。絞り込みはこのウインドウから行います。 不満足かもしれませんが、代替案です。ご参考に。(Excel2000です)