• 締切済み

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では、伝票番号、日付、名称、規格、単価、数量、を打ち込みたいと思っています。(名称、規格を入れると単価は自動で) あと、同じ名称で規格のみが違うものもあります。コンボボックスで出る名称は重複せず、規格のコンボボックスで数種類の規格を選べるとうれしいのですが・・ よろしくおねがいします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL ユーザーフォームを使ったマクロ

    データの登録をするのにユーザーフォームを使おうと思うのですが、なかなかうまくいきません。教えてください。 ユーザーフォームにはコンボボックス、テキストボックス、コマンドボタンが貼り付けてあります。(コンボボックスのリストには呼び出したいシートの名前が入っています) コンボボックスのリストの中から呼び出したいシートを選択し、テキストボックスに入力した内容を、コマンドボタンを押すことで選択されたシート上の、あるセルに登録したいのですがどうすればよいでしょうか?

  • フォームへの未入力を無くしたい

    [やりたいこと(宜しくおねがいします)] フォームの未入力「コンボボックス」と「テキストボックス」を事前に把握したい。 [(やりたいこと)の実現と希望] このサイトでアドバイスを頂きまして、長年に渡り作成できたデータベースが「68」、入力するフォームは「78」を超えます。現状「フォーム」の構成を生かす方法を含めアドバイスをお願いします。 [入力するフォームに共通していること] 1,コンボボックスとテキストボックス  ・全てのコンボボックスへの選択入力は必須になっている。  ・テキストボックスは未入力箇所も発生する。「未入力箇所は不特定」 2,フォームに共通して配している2つのコマンドボタン  ・フォームを閉じるボタン「マクロ(クリック時)」  ・情報の最新化ボタン「マクロ(クリック時)」   ※コンボボックスの選択項目追加時に反映用として配置 以上ですが、宜しくお願いします。

  • エクセルでユーザーフォームの入力時に重複チェックしたいのですが・・・。

    エクセルでデータベースを作り、ユーザーフォームにて 入力作業を行っています。 フォーム上にテキストボックスが2つ有り、 一つは日付、もう一つは名称を入力する仕様と なっています。 またシートへの書き込みはコマンドボタンで 処理を行うようにしています。 このフォームで日付と名称を入力したときに、 そのデータをシートに書き込む前に 同じデータがすでにデータベースの中にある場合に 重複がある旨のメッセージダイアログを表示させたいと 思います。 処理条件としては、 1.日付、名称それぞれのテキストボックスを 抜けたとき(Private Sub TextBox1_Exit())に 処理させること 2.入力した日付と同じ日付のデータベースにおいて 名称が同じかどうかで判断すること 3.重複があればダイアログ表示、なければ何もなし ちなみにデータベースはA列に日付、B列に名称が 入っているものとします。 また上に処理条件を記しましたが、もっと良い方法が あれば加えてアドバイス願います。 VBA初心者ですので解説付きコードで教えてください。 (非常にあつかましいのですが、余り時間がないため、 明日の朝9時までにご回答頂けると非常に助かります。 その際、もっとも的確で早い回答をくださった方に 20ポイントつけさせて頂きます。) どうぞ宜しくお願いします。

  • テキストボックスで再入力不可機能

    テキストボックスやコンボボックス、オプションボタンなど選択した後、次のフォーカスへ移動した時に再入力できないようにするのはどう処理をすればよいでしょうか?

  • エクセルのユーザーフォームについての質問です。

    エクセルのユーザーフォームについての質問です。 かなりの初心者です。 テキストボックスを3つ、チェックボックスを10個作りました。 チェックボックスは複数チェックすることができます。 コマンドボタンをクリックすると、テキストボックスに入力された値とチェックされた チェックボックスがsheet1に自動入力できるようにしたいです。 たとえば、 テキストボックス1には「あいう」 テキストボックス2には「かきく」 テキストボックス3には「さしす」と入力。 チェックボックス1から10のうち、「1」「2」「3」にチェック。 この状態でコマンドボタンをクリックすると、Sheet1には     A列       B列       C列        D列 1行目 テキスト1    テキスト2    テキスト3     チェックボックス 2行目 あいう      かきく      さしす       1 3行目 あいう      かきく      さしす       2 4行目 あいう      かきく      さしす       3 このように、チェックボックスにチェックがあった数だけ、テキストボックスも コピーされて、次々と下の行に入って行くようにしたいのです。 こんなことができるのでしょうか? できるのなら、コードを教えてください。 お願いします。

  • ご指導願います。

    どなたが教えてください。 エクセルのVBAです。 dim row as Integer for row = 1 to 65535 if (selectSheet.Cells(1, row) = "") then selectSheet.Cells(1, row) = "#####" EndIf をアレンジしたいのです。 上記のプログラムが構築されているコマンドボタンと同じuserformにオプションボタンを5個、コンボボックスを一つ作りました。 オプションボタン1を選択するとコンボボックスにはあ行が。 オプションボタン2を選択するとコンボボックスにはか行が。 オプションボタン3を選択するとコンボボックスにはさ行が。 オプションボタン4を選択するとコンボボックスにはた行が。 オプションボタン5を選択するとコンボボックスにはな行が。 選択できるようにしたいのです。 次に選んだオプションボタンと同名前のシートに上記の#####が入力されるようにしたいのですが、どのようにすればいいのですか? また、違うuserformでもオプションボタンで選択したシートに記入されるように選択の保持ですか? そういったことは可能なのでしょうか? どなたか教えてください。

  • エクセルのユーザーフォームについて

    エクセルのユーザーフォーム上で テキストボックスなどはフォーカス移動すると 入力バーが出ますがチェックボックスに来ると選択されているのがわかりません ちなみにチェックボックスはチェックのみ表示(レ点部分)文字はラベルで表示(上に表示させたかったので) 選択されているかどうか網点?など解るようにするにはどうすればいいのでしょうか?ご教授お願い致します。。

  • VBAのユーザーフォーム・・

    教えてください。 ユーザーフォームのテキストボックス・コンボボックスに入力した文字列をコマンドボタンを押したら、セルC1・B1に反映させたいのですが、できません。 このコマンドボタンには他のプログラムも入っており、同時にプログラムを実行したいのですが。

  • ユーザーフォーム上のコンボボックスのリンク先はどうやって指定?

    エクセル97です。ユーザーフォームにおいたコンボボックスに表示させたいワークシート上のリスト、およびコンボボックスで選択された値をリンクさせたいセルの指定方法がわかりません。オプションボタンやチェックボックスのリンク先指定方法もわかりません。またユーザーフォームには「OK」「キャンセル」ボタンもないのでしょうか? エクセル95のときはダイアローグシートにコンボボックスを置き、コントロールの書式設定で簡単に指定が出来たのですが、97に変えてからは、敢えてエクセル5.0のダイアローグを挿入しないといけないようなので、出来ればユーザーフォームで作ってみたいのです。どうかよろしくお願いします。

  • フォームビューでの入力ですぐ候補を表示させるには?

    アクセス2003を使用しています。 フォームデザインでボックスをいくつか作り、そのうち1つにコンボボックスを付けました。 フォームビューでデータを入力中、タブキーでボックスを移動した時、右端のコンボボックス表示ボタンを押さなくても、ボックスにカーソルが入ると同時に、コンボボックスが表示されるようにすることは可能でしょうか。 わかる方、教えて下さい。お願いします。 説明不足があれば補足します。

専門家に質問してみよう