- 締切済み
Excelユーザーフォームで伝票入力について
教えてください。 数百種類ある草花の名称をコンボボックスで行いたいのですが、例えば「ア行」というオプションボタンをチェックするとア行の草花のみがコンボボックスに出てくるような処理は出来ませんか?又、入力頻度の高い草花がコンボボックスで開くと上の方に出てくるようには出来ませんか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- marbin
- ベストアンサー率27% (636/2290)
「名称」の別に「イニシャル」を設け、入力回数をカウントアップ する「入力数」をリストの設けたらなんとかいけると思いますよ。 オプションボタンで選択したものと一致する「イニシャル」のデータ をFindメソッドなどで検索し使っていないセル範囲に蓄積していく 蓄積したデータを「入力数」で降順でソート 結果をコンボボックスにAddItemしていく
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 VBA を使えばできますよ。ただ、ACCESS でやった方が簡単だし、速度面 でも良いと思います。 難しく言おうとしているわけではありませんが、以下の説明でボンヤリ とでもイメージが湧かない場合、ちょっと難しいかもしれません。 絞込み検索の機能を実装するには、ある程度 VBA や SQL の理解が必要 だし、コーディング量も比較的大きくなるからです。 > オプションボタンをチェックするとア行の草花のみがコンボボックス > に出てくるような処理は出来ませんか? いろいろな方法がありますが、手っ取り早いのは、 DAO 接続で自ブック に接続して、SQL でデータ抽出したものをコンボボックスに AddItem し ます。例えば「ア行」なら、以下の様な SQL を渡します。 SELECT * FROM [Sheet1$] WHERE [種名] LIKE '[ア-オ]*'; > 入力頻度の高い草花がコンボボックスで開くと上の方に出てくるよう > には出来ませんか? > シート1のA列に名称、B列に規格、C列に単価です。 D列に「被参照量」というフィールドを設けて、コンボボックスで選択さ れたら時など一定のタイミングでこれをカウントアップするようにします。 SQL で抽出する際には、この「被参照量」フィールドで並べ替えれば良い です。
お礼
うう・・ VBA超初心者で、ここで教えてもらったコードをいじるくらいしか出来ません。すでに言葉の意味がわからないくらい・・ 私の実力ではちょいと無理っぽいですね。 ありがとうございました。別の方法でやってみます(ToT)
- marbin
- ベストアンサー率27% (636/2290)
もとのデータがどのように整理されているかわからないのですが。 ア行、カ行と別々の列やシートなりに分別してありますか?
補足
さっそくありがとうございます。 シート1のA列に名称、B列に規格、C列に単価です。 今は一列にランダムに打ち込んでいます。 並べ替えはすぐです。 UserFormでは、伝票番号、日付、名称、規格、単価、数量、を打ち込みたいと思っています。(名称、規格を入れると単価は自動で) あと、同じ名称で規格のみが違うものもあります。コンボボックスで出る名称は重複せず、規格のコンボボックスで数種類の規格を選べるとうれしいのですが・・ よろしくおねがいします。
お礼
流れはわかったのですがコードとなると私には無理っぽいのでもう少し勉強してからにします。 ありがとうございました。