• ベストアンサー

エクセルでデータ登録したい

はじめまして、エクセルは最近使い始めた初心者です。 登録シート、データシートとあり、登録シートでデータシートより 品目コードでデータを呼出し在庫数など入力し直し、データシートに 登録したいのですが?何か良い知恵が有ればおかし願います。 例 品目コード____ 品名   ____ 規格  ____ 使用場所____ 在庫____ 登録 ボタンで登録出来る様にしたいのですがよろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.6

実際の問題として「このあとこの表で何をしたいか?」にかかってくるんです。 どうしても「実務」に絡めてモノを考える癖があるもので、すいません。 単純に > 品目コードでデータを呼出し在庫数など入力し直し、データシートに登録 だけであれば、品目コードでオートフィルタをかけて、入力し直す方が早くて確実です。  ・各行の品目コードに重複がない  ・「新しい品目」が出ない限り行数が増えない  ・動くのは「在庫数」のみ と言うのであれば、です。 これを「品目・日付ごとに出庫数・入庫数を蓄積して、あとでいつでも集計できる」形を目指すなら、 「登録シート」と言う考え方も視野に入るかなぁ、と思います。 この場合、  ・登録(蓄積)するのは「日付・品目」がキー項目(使用場所も?)  ・上記キーごとに「入庫数・出庫数」を蓄積  ・蓄積された「入庫数・出庫数」を基に「在庫数」を算出 と言う仕組みでしょうか。 (正直、そこを目指すならAccessなどを使う方が良いですけどね。) さてさて、「勉強」と言うなら話は別です。 まずは「マクロの記録」から始めましょう。 「記録を開始」して、やりたい処理をなぞっていくと、 処理がマクロとして記録されます。 恐らく処理の流れは、登録シートに「品目コード」を入力・指定し  ・データシートから「該当する品目コード」を検索する  ・見つかった品目コードの行をコピー  ・登録シートに「行列を入れ替えて貼り付け」 ここまでが一つ目「呼び出すため」のマクロ 続いて、在庫数などを入力して  ・品目コード以下「各項目をコピー」  ・データシートから「該当する品目コード」を検索  ・該当行に「行列を入れ替えて貼り付け」 ここまで、「再登録するため」のマクロ この二つでいけると思います。 「勉強」ですから、「他人の答えを丸写し」ではなくて、 自分で調べて自分なりに答えを出しましょう。 情報はインターネット上にいくらでも落ちてますからね。 http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_01.html http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_01_2007.html http://www4.synapse.ne.jp/yone/excel2010/excel2010_macro_kiroku.html

tamamike3670
質問者

お礼

回答ありがとう御座います。 実際の問題として、誰でも簡単に入力出来る様にしたい!会社で。 勉強と言っても会社で時間が空いた時にしか使用許可が降りない、しかもエクセル97?かな? 家の、PCにはエクセルは入っていません。で以前エクセル関数で簡単な表を作った事が有ったのを 覚えていた上司が、「こんなのどう?」的に言われたので、簡単に考えてしまいました。 こんなに難しいとは、思いもしませんでしたが、でもなんとか少しでも皆さんの知恵を お借りして頑張ろうと思います。入力は会社でしか出来ないので、ある程度知識が必要ですよね? と思ったしだいです。ですので「他人の答えを丸写し」になる可能性は非常に高いです。 いろいろ知恵を貸して頂きありがとう御座いました。

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

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんばんは! >ボタンで登録出来る様にしたいのですがよろしくお願いします 当然Sheetにコマンドボタンを挿入したり、ユーザーフォームを利用したりする方法で可能です。 しかし、他の方々が仰っているように一気に!となると かなりハードルが高いと思います。 ここでその方法を投稿しても、表の配置等でコードが変わってきますし、 エラーが発生した場合など対応ができないと何も意味がありませんので・・・ 敢えて他の方法の一例です。 (極力お望みの方法に近い形になるようにしてみました) ↓の画像のようにSheet2に表を作成しておきます。 Sheet1のA2セルに =IF(COUNTIF(Sheet2!A:A,B$1),VLOOKUP(B$1,Sheet2!A:E,ROW(),0),"") という数式を入れ、A5セル(薄い黄色セル)までオートフィルでコピーしておきます。 これでSheet1のA1セルに品番を入力すればSheet2の一致するデータが表示されます。 次にSheet2のF2セルに =IF(OR(A2="",A2<>Sheet1!B$1,COUNTBLANK(Sheet1!B$6:B$7)=2),"",E2-Sheet1!B$6+Sheet1!B$7) という数式を入れオートフィルでずぃ~~~!っと下へコピーします。 これでSheet1のA6もしくはA7セルに数値を入力すると Sheet2のF列に実際の在庫数が表示されます。 (出荷・入荷があるはずですので、A6.A7のセルを使ってみました) ここでVBAになってしまいますが、 画面左下のSheet2のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から If Application.Intersect(Target, Range("E:E")) Is Nothing Or Target.Count <> 1 Then Exit Sub Worksheets("Sheet1").Range("B1,B6:B7").ClearContents '↑「Sheet1」の部分は実際のSheet名に! End Sub 'この行まで 最後にSheet2のF列に表示されている数値を間違えないように そのままその行のE列に手入力します。 これでSheet2のE列に数値を入力した段階でSheet1のデータが表示されなくなると思います。 ※ 上記操作は当然VBAで一気に可能ですが、まずは第一段階の方法です。 参考になりますかね?m(_ _)m

tamamike3670
質問者

お礼

回答ありがとう御座います スゴーく参考になりました。ほんと凄いですね。目の前が開けた感じです。 また何か有りましたらよろしくお願い致します。

すると、全ての回答が全文表示されます。
  • chayamati
  • ベストアンサー率41% (260/625)
回答No.4

???? ・エクセル以外何が使えますか ・この課題はどなたの案ですか ・この課題はどちらかというと access(データーベースソフト)を想定しています。 エクセルでとなると データシートと登録シートそれぞれにどのような項目がありますか 入力規則の機能とVlookup関数をつかうことになります。 登録シートに追加入力する項目をまたデータシートに追加して一つのシートだけにする。 これではどのような不都合がありますか?

tamamike3670
質問者

補足

回答ありがとう御座います >エクセル以外何が使えますか エクセルしか使えません、VBAはエクセルの作業を記録して自動で実行させるぐらいです。 ですので、全然、話にならないくらいの初心者だと思います。  データシートには横列で品目コード、品名、規格、使用場所、在庫となっており 登録シートには縦列に品目コード、品名、規格、使用場所、在庫となっています。 出来れば品目コードで呼び出し項目データ変更後更新し新規登録も出来、在庫がラスト1になると データシートの在庫が赤になり、月ごとの使用回数が集計出来る様になればと思っていました。 Vlookup関数は少しは分かります、入力規則も少し理解出来ます。 access(データーベースソフト)は作業するPCに入っておらず使用出来ません。 >登録シートに追加入力する項目をまたデータシートに追加して一つのシートだけにする。  これではどのような不都合がありますか? 不都合はありませんが、見易いし、データシートを使って他にも応用出来ればとは思っていました。 勉強中で、「あーそう言えば」みたいな感じです。ですので、不都合は有りません。

すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

使いやすいファイルを作るとすれば、VBAをマスターされることをお勧めします。 以下は、Office2010の場合の参考までにです。 1、シート名 登録   シート名 データ の2つのシートを準備 2、シート名 登録    A     B 1 品目コード 2 品名 3 規格 4 使用場所 5 在庫数 として、B1~B5に入力することとする 3、シート名 データ    A    B   C  D     E  品目コード 品名 規格 使用場所 在庫 と1行目にフィールド名を準備しておく 4、登録ボタンの作成   リボンの開発=>挿入=>ボタンを選択=>シート上の適当な場所に配置=>新規作成   (開発のリボンがなければ、ファイル=>オプション=>リボンのユーザー設定    メインタブの開発のボタンいチェックを入れてください) 5、VBエディターが起動したら    Sub ボタン1_Click()    End Sub    が出来ているので    Sub ボタン1_Click()     GYOU = Sheets("データ").Range("A" & Rows.Count).End(xlUp).Row + 1     Sheets("データ").Range("A" & GYOU).Value = Range("B1").Value     Sheets("データ").Range("B" & GYOU).Value = Range("B2").Value     Sheets("データ").Range("C" & GYOU).Value = Range("B3").Value     Sheets("データ").Range("D" & GYOU).Value = Range("B4").Value     Sheets("データ").Range("E" & GYOU).Value = Range("B5").Value   End Sub となるよう貼り付けて閉じます。 登録ボタンを押すと、データシートの最終行の下に、内容が転記されていきます。 コードに内容については http://excelvba.pc-users.net/ 等を参考に勉強してみてください。

すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

使いやすいファイルを作るとすれば、VBAをマスターされることをお勧めします。 以下は、Office2010の場合の参考までにです。 1、シート名 登録   シート名 データ の2つのシートを準備 2、シート名 登録    A     B 1 品目コード 2 品名 3 規格 4 使用場所 5 在庫数 として、B1~B5に入力することとする 3、シート名 データ    A    B   C  D     E  品目コード 品名 規格 使用場所 在庫 と1行目にフィールド名を準備しておく 4、登録ボタンの作成   リボンの開発=>挿入=>ボタンを選択=>シート上の適当な場所に配置=>新規作成   (開発のリボンがなければ、ファイル=>オプション=>リボンのユーザー設定    メインタブの開発のボタンいチェックを入れてください) 5、VBエディターが起動したら    Sub ボタン1_Click()    End Sub    が出来ているので    Sub ボタン1_Click()     GYOU = Sheets("データ").Range("A" & Rows.Count).End(xlUp).Row + 1     Sheets("データ").Range("A" & GYOU).Value = Range("B1").Value     Sheets("データ").Range("B" & GYOU).Value = Range("B2").Value     Sheets("データ").Range("C" & GYOU).Value = Range("B3").Value     Sheets("データ").Range("D" & GYOU).Value = Range("B4").Value     Sheets("データ").Range("E" & GYOU).Value = Range("B5").Value   End Sub となるよう貼り付けて閉じます。 登録ボタンを押すと、データシートの最終行の下に、内容が転記されていきます。 コードに内容については http://excelvba.pc-users.net/ 等を参考に勉強してみてください。

tamamike3670
質問者

お礼

回答ありがとうございます。 早速、参考にさせて頂きます。

すると、全ての回答が全文表示されます。
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

> エクセルは最近使い始めた初心者です。 とありますが、まずはエクセルが「どんなソフトなのか」から勉強なさってください。 世間一般には「表計算ソフト」と呼ばれる部類に属します。 その上でご所望の処理をしたいとなると、 ・データを登録・修正するユーザーフォーム ・フォームに入力されたデータを登録するマクロ ・(入力されたデータが登録済みかどうか確認するためのマクロ) ・フォームに登録済みのデータを取り込むためのマクロ ・フォームで修正されたデータを書き込むためのマクロ 最低限、これだけ作らなければいけません。 (ユーザーフォームは無くてもできますが。) 逆に言うと、これらを調べていくとおそらく作れます。 でも、この手の処理をしたいなら、 データベース管理ソフトである「Access」をおすすめします。

tamamike3670
質問者

お礼

回答ありがとうございます。 頑張って勉強中ですが、参考に出来ればと思い質問した次第です。

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

関連するQ&A