- ベストアンサー
エクセルでユーザーフォームからデータを書き込む方法とは?
- エクセルのユーザーフォームからデータを連動させて自動入力する方法について紹介します。
- 製品名ごとに数量、単価、合計をデータベースに書き込むための効率的な方法についても考えてみましょう。
- 初心者でもわかりやすく解説しますので、安心して使えます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>行を増やすという考えも、素人考えなので他に効率のいい方法が… そういうデータベースは、アクセスとかを使って DB1:物件一覧のデータベース 物件No,物件名称,日付,担当者 DB2:物件ごとの製品データベース 物件No,子番号,製品番号,数量,単価,納入日 などといった具合に、効率的にデータベースを設計して作っていく事もできます。 でも今は、とりあえずお手軽にエクセルで作成したいご相談ということなので、べたべたの表形式で丁寧に作成していくしかありません。 作成例: 物件No,物件名称,日付,子番号,製品名,製品数量,製品単価,金額合計 A001,あれこれ,7/27,A00101,製品1,5,300,1500 A001,あれこれ,7/27,A00102,製品2,4,400,1600 A001,あれこれ,7/27,A00103,製品3,2,500,1000 A001,あれこれ,7/27,A00104,製品4,1,300, 300 A002,それどれ,7/29,A00201,製品1,4,300,1200 A002,それどれ,7/29,A00202,製品4,1,300, 300 A002,それどれ,7/29,A00203,製品5,1,600, 600 といった具合に手抜きせずに表を埋めていくよう、丁寧にマクロを組んでいくだけです。 >製品名ごとに数量、単価、合計があるのでこちらにも反映 製品ごとの集計は「データベースに反映」するんじゃなく、記録した基本のデータベース1本だけを元にして、別途集計するカンジで作成します。 通常はピボットテーブルレポートなどを使い、さくっとエクセルに集計させて作成してください。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
ユーザーフォームに作成するのは 1.一回の入力で物件ごと一回だけ記入すればよい項目 物件No,物件名称,物件の日付,物件の担当者 etc 2.一回の入力、一つの物件ごとに複数件を記入しなきゃならない項目 製品番号、各製品の数量、単価、納入日 etc という具合に分かれるハズですよね。 たとえばテキストボックスの1から5はタイプ1の記入内容 たとえばテキストボックスの6から35までがタイプ2の記入内容 といった具合にアナタがやらなきゃならないことを整理します タイプ1の記入内容を、ユーザーフォーム上で製品の件数分繰り返し入力するなんで無駄な事は、勿論する必要は無いってことです。 もうちょっと噛み砕いてお話しすると。 たとえばテキストボックスの6以降、何個かずつが製品1つ1つに対応する「製品ごと入力するデータのグループ」という事になります。 たとえばテキストボックスの6に記入があれば、6から10まで1グループ分入力した、テキストボックスの11に記入があれば、11から15までもう1グループ入力された、16に入力すれば16から20まで入力があった、17が空ならそこまで3グループ分入力があったんだと判る、という事が判りますね? たとえば3グループ分の製品データが入力されたとわかったら、合計3回 A列~E列にタイプ1の記載内容を記入 F列~J列にグループ1の記載内容を記入 振出しに戻って次の行に A列~E列にタイプ1の記載内容を再記入 F列~J列にグループ2の記載内容を記入 次の行にまた A列~E列にタイプ1の記載内容をもう一回記入 F列~J列にグループ3の記載内容を記入 といった具合にして、エクセルのリストに3行追記します。
- hallo-2007
- ベストアンサー率41% (888/2115)
補足
keithinさま ご丁寧に教えてくださってありがとうございます。 教えて下さったように、表を作成するとします。 その際にフォームで入力すると、「製品名」「数量」「単価」「金額合計」の部分は、6行テキストボックスを作ると、データに入力する際に1行のときは1行作成してくれればいいのですが、2行、3行のときは、その数に応じて行をその分だけ増やしてくれるようにできるのでしょうか? それができるのであれば、入力間違いなどなくてよさそうなのですが・・・。 何度も質問して、すみません。