- 締切済み
コンボボックス_データ抽出
コンボボックスを使用し、<全台帳>から、自分の担当分の必要データのみ抽出し、新たに<一覧表>を作成したいと考えています。 ≪エクセルの状態≫ ・Sheet1 <メニュー欄>(表紙になっています) ・Sheet2 <全台帳> 部署全体の注文アイテム情報があります。 このデータは、毎日自動更新されるようにすでにマクロが組まれています。(行が日々変更します) ・Sheet3 <自分の一覧表> 今回作りたいものです。 ≪Sheet2と3の説明≫ ・Sheet2のデータは、下記のようなものが横に一列に並んでいます。 [入力日][注文番号][客先][品名][数量][納期][送り先]など物凄いたくさんの情報が部署全員分あります。 ・Sheet3には、[注文番号(唯一これが自分の分とわかるものです)]からデータを引っ張ってきて、その分の[客先][品名][数量]データのみ一緒に引っ張ってきてほしいのです。 ≪作りたいマクロ≫ 【1】Sheet1のメニュー欄にマクロボタンを作り、それをクリックすると、ユーザーフォーム(コンボボックス)が表示されます。 (表示場所は、Sheet1でも3でもかまいません。) 【2】コンボボックスは、Sheet2にリンクしてあり、[注文番号(直接入力は不可)]から自分の担当分を選ぶ。 【3】ユーザーフォーム上で、<登録ボタン(コマンドボタン?)>を押す。 【4】Sheet3に、[注文番号]とその分の[客先][品名][数量]のみ一緒に引っ張られてくる。 注文が入るたびに、この作業をするため、Sheet3は最終行に追加されるかたちにします。 この様なマクロの組み方を、教えてください。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
#2です。 >また「担当者」の列を設けてというのは、件数が500件ぐらいあるので、 >作業がかなり大変になるような気がします。 気になるのは500件あれば、注文番号も500個あるのでは? それをコンボボックスで表示し探し選択するのは大変かと思いましたので提案させて頂きました。
- kazuhisa01
- ベストアンサー率32% (158/487)
注文番号の列の位置が一定であればその列をソートしてデータを抜く方法がある。 例えば・・・ 大前提として注文番号の列が一定であれば、そのシートをコピーして注文番号順にソートをかける。 その後に最大行数まで注文番号の列を探していき、前のデータと一致しない場合はコンボボックスに格納しなければいいです。 必要ないものが残るのが嫌であれば、処理後にシートを削除するだけです。 質問内容がどこまで求めているのか、タイトルの部分を聞きたいのに全体的な質問を書いてしまったのか、全然わかりません。 全てを質問掲示板に託してしまったせいでメンテが出来なくなってしまい、次問題があったら同じように質問掲示板に書くのでしょうか? どうしてもわからないときの質問はいいですけど、やる前に質問は回答するほうも・・・。
- n-jun
- ベストアンサー率33% (959/2873)
>【2】コンボボックスは、Sheet2にリンクしてあり、[注文番号(直接入力は不可)]から自分の担当分を選ぶ。 自分の担当分を注文番号で選ぶのではなく、「担当者」の列を設けて抽出しコピペすれば いいように思いますが、仕様変更は出来ないのでしょうか。
補足
ご回答ありがとうございます。 うちの会社で、唯一手入力をせず情報を取り込めるのが、<全台帳>なので、それを用いて日々の管理に役立てたいと思っているのです。 <全台帳>に、担当者をしめす情報はなく(実際はあるのですが、営業の担当先がコロコロ変わるため変更が追いついてない状況です。)、また「担当者」の列を設けてというのは、件数が500件ぐらいあるので、作業がかなり大変になるような気がします。 わたしはマクロ初心者なので、思い描いていることがあっているかどうか分かりませんが、 コンボボックスを使用し、[注文番号(直接入力は不可)]から自分の担当分を選ぶ作業には、 (1)自分の担当分を抽出する目的のほかに、(2)注文インプット漏れをしていないかという確認もできるのではないかと考えたためです。 つたない質問へご回答いただきまして、ありがとうございました。 なんとか作成したいので、もっと勉強して、きちんと質問ができる状態にまで頑張りたいと思います。
- imogasi
- ベストアンサー率27% (4737/17069)
これって、ソフト作成業者に対する、発注書みたいだ。 こういう質問のような仕組みは、少し本格的には、金を払って業者にやってもらうようなことの一環である。チョコチョコと質問コーナーの回答で済ます問題ではない。それに質問者は少しはVBAの経験はあるのか。 >マクロの組み方を、教えてください このコーナーは課題(ほしいもの)を書いてコードを回答者に作ってもらうコーナーではない。自分でもっと勉強しコード作成上の疑問点を整理するべき。 ーー 例示したデータが質問に載せてない。それを載せられるまで、問題点を整理抽象化・モデル化しないと。 それに参考に、コードを回答者が考えるときに、具体的になって居ないと、書けない情報があるが、それが書けてない。 例えば注文番号から担当者を割り出す仕組みは。 例えば、コンボのアイテム(担当者?)は増減あるのか? 一度入れたら変動無いのか。選択アイテムは氏名かコードか? >コンボボックスは、Sheet2にリンクしてあり はリンクさせると言うことか。これも難しい。 >客先][品名][数量]のみ一緒に引っ張られてくる。 とはSheet3に抜き出したい、と言うことか。 >注文が入るたびに、この作業をするため、Sheet3は最終行に追加されるかたちにします。 どういう(時間)単位(間隔)で、どういう仕組みで「注文が入る」のか(エクセルシートのデータになるのか)。 VBAでも即時反応性は難しい。 抜き出しは即時反応的な関数でも出来るが、VBAでは難しい。 シートが出来上がっていて、データに担当者コードがあるとき、担当者コードを条件に抜き出す関数利用の方法は、Googleで「imogasi方式」で照会すれば、私の回答と他の回答者の回答が多数出てくる。 ーー ユーザーフォームやコンボボックスなど、初心者には難しいことを言っているが、Inputboxなどで、まづ担当者の指定する方式を始めるとか、もある。 ーー ほかに質問者以外も含め、共同利用するのか。同一パソコン1台で入れ替わり立ち代り使うのか、各自のパソコンで使うのか。 参考までに、質問には、エクセルバージョンぐらい書くものだ。
補足
ご意見,ご指摘ありがとうございます。 わたしはマクロ初心者です。 まわりにできる人がいないため、かなり初歩的なところでもずっとつまづいている状況です。。でもマクロの必要性や利便性は強く感じるため、本を見ながらやっているのですが、なかなかうまくいかず、こちらを見つけ、質問をした次第です。 質問の仕方も不慣れで、すみませんでした。 もっと具体的に質問ができるよう、勉強してからまた質問させていただきます。
補足
注文番号は、数字で表示されているため、その選択作業は大変ではないのです。 ご心配ありがとうございます。