• 締切済み

Excelユーザーフォームで伝票入力について

教えてください。 数百種類ある草花の名称をコンボボックスで行いたいのですが、例えば「ア行」というオプションボタンをチェックするとア行の草花のみがコンボボックスに出てくるような処理は出来ませんか?又、入力頻度の高い草花がコンボボックスで開くと上の方に出てくるようには出来ませんか?

みんなの回答

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

「名称」の別に「イニシャル」を設け、入力回数をカウントアップ する「入力数」をリストの設けたらなんとかいけると思いますよ。 オプションボタンで選択したものと一致する「イニシャル」のデータ をFindメソッドなどで検索し使っていないセル範囲に蓄積していく 蓄積したデータを「入力数」で降順でソート 結果をコンボボックスにAddItemしていく

yudetako
質問者

お礼

流れはわかったのですがコードとなると私には無理っぽいのでもう少し勉強してからにします。 ありがとうございました。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。KenKen_SP です。 VBA を使えばできますよ。ただ、ACCESS でやった方が簡単だし、速度面 でも良いと思います。 難しく言おうとしているわけではありませんが、以下の説明でボンヤリ とでもイメージが湧かない場合、ちょっと難しいかもしれません。 絞込み検索の機能を実装するには、ある程度 VBA や SQL の理解が必要 だし、コーディング量も比較的大きくなるからです。 > オプションボタンをチェックするとア行の草花のみがコンボボックス > に出てくるような処理は出来ませんか? いろいろな方法がありますが、手っ取り早いのは、 DAO 接続で自ブック に接続して、SQL でデータ抽出したものをコンボボックスに AddItem し ます。例えば「ア行」なら、以下の様な SQL を渡します。 SELECT * FROM [Sheet1$] WHERE [種名] LIKE '[ア-オ]*'; > 入力頻度の高い草花がコンボボックスで開くと上の方に出てくるよう > には出来ませんか? > シート1のA列に名称、B列に規格、C列に単価です。 D列に「被参照量」というフィールドを設けて、コンボボックスで選択さ れたら時など一定のタイミングでこれをカウントアップするようにします。 SQL で抽出する際には、この「被参照量」フィールドで並べ替えれば良い です。

yudetako
質問者

お礼

うう・・ VBA超初心者で、ここで教えてもらったコードをいじるくらいしか出来ません。すでに言葉の意味がわからないくらい・・ 私の実力ではちょいと無理っぽいですね。 ありがとうございました。別の方法でやってみます(ToT)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

もとのデータがどのように整理されているかわからないのですが。 ア行、カ行と別々の列やシートなりに分別してありますか?

yudetako
質問者

補足

さっそくありがとうございます。 シート1のA列に名称、B列に規格、C列に単価です。 今は一列にランダムに打ち込んでいます。 並べ替えはすぐです。 UserFormでは、伝票番号、日付、名称、規格、単価、数量、を打ち込みたいと思っています。(名称、規格を入れると単価は自動で) あと、同じ名称で規格のみが違うものもあります。コンボボックスで出る名称は重複せず、規格のコンボボックスで数種類の規格を選べるとうれしいのですが・・ よろしくおねがいします。