エクセルで部品管理を自動化する方法とは?

このQ&Aのポイント
  • エクセルで工場で扱っている部品を管理するために、入力用シートと別シートのデータを自動的に貼り付ける方法を探しています。
  • 現在は500以上の項目があり、手動で貼り付ける作業が膨大になってしまっています。
  • 予算の都合でデータベースを使うことができず、エクセルで管理する必要があります。マクロや他の方法を活用して自動化する手段を教えていただけると助かります。
回答を見る
  • ベストアンサー

一覧表をデータを別シートに自動貼り付けできますか

エクセルで工場で扱っている部品管理したいと思っています。 現在、自分なりに考えて、 入力用シートで概要入力をし、別シートで詳細をわかるように管理したいと思ってます。 構成は入力シート(1)、別シート約500シート以上です。 入力用シートに、以下のように入力しています。    A    B     C     D     E    F    G     H 1   No 部品番号 名称 製造番号 有効期限 種類 仕入れ先 残数 2     1 123456    テスト  123      2012/4     D      A社    2 3    2 852      Ring      456     2012/7    C     B社     3  4    3 このように項目が約500項目以上あります。 これを添付画像のように、別シートで部品ごとに詳細管理しています。 入力シートは入力できたのですが、各シートに該当部分を貼り付ける作業が膨大に時間かかりそうなので、マクロで自動貼り付けはできないものでしょうか? データベースに近い形になるかもしれないので、アクセス使ったほうがいいのはわかっていますが、予算がとれなくてどうしてもエクセルでしたいと思っています。 初めて質問するので、わかりにくい文章かもしれませんが、よろしくお願いします。 不明点あれば教えてもらえれば、説明します。

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

  • ベストアンサー
  • nao-y
  • ベストアンサー率58% (111/190)
回答No.2

失礼しました。 ソースコードの > Set detailSheet = Sheets.Add(After:=Sheets(Sheets.Count)) を tempSheet.Copy After:=Sheets(Sheets.Count) Set detailSheet = ActiveSheet detailSheet.Name = origSheet.Cells(i, 2).Value に置き換えてください。

chihaya9725
質問者

お礼

ソースを修正したら、無事にできました。 これであっという間に処理できます。 ありがとうございました。 修正部分ですが、これをベストアンサーとさせていただきました。

その他の回答 (1)

  • nao-y
  • ベストアンサー率58% (111/190)
回答No.1

マクロでできます。 以下を前提としたソースコードです。 ・入力シートのシート名は「入力」 ・部品ごとのシートのテンプレートをシート名「テンプレート」として準備 ・1つの部品番号に対しては1つの仕入先のみ Sub macro() Dim i As Long Dim origSheet As Worksheet Dim tempSheet As Worksheet Dim detailSheet As Worksheet Set origSheet = ActiveWorkbook.Sheets("入力") Set tempSheet = ActiveWorkbook.Sheets("テンプレート") For i = 2 To origSheet.Range("A2").End(xlDown).Row Set detailSheet = Sheets.Add(After:=Sheets(Sheets.Count)) detailSheet.Range("C3").Value = origSheet.Cells(i, 2).Value detailSheet.Range("I3").Value = origSheet.Cells(i, 3).Value detailSheet.Range("C5").Value = origSheet.Cells(i, 4).Value detailSheet.Range("I5").Value = origSheet.Cells(i, 5).Value detailSheet.Range("L2").Value = origSheet.Cells(i, 6).Value detailSheet.Range("A7").Value = origSheet.Cells(i, 7).Value detailSheet.Range("G7").Value = origSheet.Cells(i, 8).Value Next i End Sub ----- ただ問題として、実際には1つの部品について仕入先は複数、ということに なるかと思います。 その場合、入力データの1行で表すのか仕入先の件数分の行数を使うのかによって ソースコードが変わってきます。 その辺りどうなってますか? それによって、ソースコードを見ながらどう改変すればよいか検討してみてください。

chihaya9725
質問者

お礼

早速の回答ありがとうございます。 早速実行して驚きました。 一つ問題がありまして、 入力シートから新しいシートにデータ入力はされるのですが、テンプレートが活用されていないみたいなんです。 空白部にデータ値のみ入力されている感じです。 ソースコードを自分なりにさわってみたのですが、解決できませんでした。 ご指導よろしくお願いします。

関連するQ&A

  • エクセル 別シートから一覧を抽出したい

    部品一覧表を作成しているのですが、2シートあり 1入力シート・2部品コードシートとあります。 部品コードシートにはB列に部品番号・C列部品名・D列部品番号・E列部品名と2行ずつ使い番号・品名がB~Wまで47行分入力されています。 B1:C47、D1:E47…と2列47行にはそれぞれ【A】、【B】、…とセルの名前の定義をつけました。現在【H】までありますが、今後増える可能性があります。 入力シートに、セルの名前を指定したときに部品コードのシートから 一覧を抽出したいのですが、どの関数を使えばよいのかわかりません。 入力シート                 |部品コードシート G   H                  | A Bコード C部品名  Dコード E部品名 4式入力用にあけています。     |1 1800  ユニットA   1501 電源A 5コード 部品名             |2 1801  ユニットB   1502 電源B 6                       |3 G4に関数を入れてG6~G52まで部品コードのシートA1~A47を一気に表示 させたいのです。部品コードシートの行数が変わることはありません。 マクロを使わないと、関数では難しいでしょうか?

  • ランダムに入力された一覧表の項目・金額⇒別シートの項目別一覧表の金額欄に表示させたい

    あるシートに会員毎に項目別(15程度)金額の一覧表があります これを、会員別の金額一覧表に表示させたいのです 以下具体例です シート1(会員名別金額一覧表) 会員名 項目 金額 項目 金額 項目 金額 会員1 項目A 5000       項目C 3000 会員2 項目A 5000 項目C 6000 会員3 項目A 10000       項目B 5000 会員4              項目F 4000 各会員の項目名がどの項目列に入力されるか確定していません      ↓↓ シート2(会員別金額合計表)   会員1    会員2 項目A 5000 項目A 5000 項目B    項目B 項目C 3000 項目C 6000 項目D    項目D 項目E    項目E  項目F    項目F   会員3    会員4 項目A 10000 項目A  項目B 5000 項目B  項目C    項目C 項目D    項目D 項目E    項目E 項目F    項目F 4000 項目数は15程度です 関数で対応できるのではと思うのですが、 エクセル初心者でどの関数を使用すればいいかわかりません よろしくお願いいたします。

  • シート間の貼付け教えてください。

    エクセルを添付して聞けたら良いのですが・・・ 「シート1」のA列に出席番号、B列に氏名、C列に身長欄、D列に体重欄、・・・F欄にコメント欄 {シート2」以降は個人別入力シートとし、出席番号欄に数値を入力すると、氏名欄に「シート1」の出席番号に該当する氏名が自動的に貼り付く様にしたい。叉、「シート2」へ入力した身長等が「シート1」の出席番号に該当した『身長欄』へ自動的に貼付けしたい。

  • 管理番号から別シートのデータを参照したい

    すみません、エクセルについてどうかお知恵を貸してください…><) シート1には淡々と表形式でデータを入力します。 シート2には1で入力したデータを参照させ、依頼表のような形で 印刷できるような形式にしたいと思います。 例)シート2の「B2」欄にシート1のA列に入れた管理番号を入れると   シート2内でその管理番号の行の内容 恥ずかしながら、関数などがほぼ分かりません。前任者が似たようなデータを IF(VLOOKUP うんぬんという式を使って作成していたのですが私のスキルでは アレンジができませんでした。 シート2の B3 B4...にどのような式を入れたらいいのか、または その設定方法について教えて頂けないでしょか。宜しくお願いいたします。 ※ Excelは2013です 【シート1】 A B C D E 1 No 顧客名 契約内容 契約日 対応状況 2 1. ほげ社 ××工事 YYYYMMDD 完了 3 2. たこ社 ○○工事 YYYYMMDD 対応中 4 3. ABC商会 △△工事 YYYYMMDD 対応中 5 4. 6 5. 【シート2】 A    B C D E 1   「依頼票」 2 No.    1.  3 顧客名    ほげ社 4 契約内容  ××工事 5 契約日    YYMMDD 6 対応状況   完了

  • データー表から別のシートに転記

    いつもお世話になります。 WINDOWS7 EXCELL2010 です。 データーを記入したシート「入力」から会社別のシート「請求書」に転記したい。 シート「入力」 1月~12月迄、C /G列を除くA~F列には手入力しています。 C2 =IF(B2="","",VLOOKUP(B2,顧客管理,2,FALSE)) & " " G2 =IF(F2="","",E2*F2) シート「請求書」 月初~月末 の月毎に請求内容を「入力」シートより参照図のように転記したい。 参照図でいうと 10月のみにまとめたい。 この請求書は 例えば A1 に 「0030」と入力すると A1 0030 A2 郵便番号 =" "&IF(A1="","",TEXT(VLOOKUP(A1,顧客管理,4,FALSE),"〒000-0000")) & "" A3 会社名 荒川商店 =" "&IF(A1="","",VLOOKUP(A1,顧客管理,3,FALSE)) & "" 当然のことながら A1 に 0041 と入力すると 「春日南九(株)」の請求書に早変わりし、 D15 E15 F15 G15  10/20 JF 250 4  という具合になればありがたいです。 御指導のほどよろしくお願いします。

  • エクセル あるシートから別シートへ貼り付け

    どなたかお助け下されば、大変ありがたく存じます! エクセルに関する質問です。 コピー元エクセルシートのセル(B2、B3、B4、B5・・・B100)に数値が入力されています。 その値を、別シートのセル(C2、C25、C48、C71、・・・C2256、C2279)に貼り付けたい場合、 何か良い方法は無いものでしょうか。 貼り付け先となるセルは、等差数列的に決まっており、 フィルタでその指定セル(C2、C25、C48・・・C2256、C2279)を抽出することも可能です。 単純に、貼り付け先セルへ、C2セル「=コピー元シート!$B2」と入力すると、 C25「=コピー元シート!$B25」、C48「=コピー元シート!$B48」・・・となってしまい、 うまく貼り付けることが出来ません。 理想は、 C2セル「=コピー元シート!$B2」、C25「=コピー元シート!$B3」、 C48「=コピー元シート!$B4」、・・・、C2279「=コピー元シート!$B100」としたいのです。 (コピー元)→(貼り付け先) B2 → C2 B3 → C25 B4 → C48 B5 → C71 B6 → C93 ・・・ B99 → C2256 B100 → C2279 何か良い方法があればお教え願えますでしょうか。 どうかよろしくお願い申し上げます!!

  • 別のシートにデータを出す方法

    シート1に 番号 A1に1 A2に2 A3に3 A4に4 データ↓ B1に43 B2に45 B3に47 B4に55 C1に733 C2に890 C3に826 C4に94 D1に57 D2に67 D3に41 D4に52 E1に301 E2に104 E3に719 E4に441 という表があるとします。 番号1の場合は、B1の43、C1の733、D1に57、E1に301というデータです。 シート2の、 A3に、1という数字(シート1のA1の、1という番号)をいれれば、 シート2の B3に、シート1の、B1の43というデータ。 C3に、シート1の、C1の733というデータ。 D3に、シート1の、D1の57というデータ。 E3に、シート1の、E1の301というデータ。 がでるようにしたいのですが、 VLOOKUPを使ってできますか? どのような関数の立て方したらいいでしょう? XPのExcel2003です。 よろしくお願いしますm(_ _)m

  • 別シートにセルをジャンプさせたい

    エクセル2007で、ひとつのブックに入力シートとそれを元にした管理シートを作成しています。。 入力シートはc11:J810まで800件のデータがあり、C列にはC11から管理番号(1から順に2,3,4‥‥800)が入っています。 管理シートの空いているセル(例えばF8)に入力シートの検索したい管理番号(例えば20)を入れて実行すると入力シートの管理番号20にセルが移動するようにしたいのですが、どうすれば良いのでしょうか?

  • エクセルでリストに対応するデータを別シートの表

    エクセルでリストに対応するデータを別シートの表に参照したいです。 「表シート」のB2にリストを作って、 (リストは「一覧表シート」のA,B,Cが入力されているセルを参照しています。) Aを選択すると101の下の段(B11)に、 「一覧表シート」のAの列101の111が入力されるようにしたいです。 Bを選択すると222、Cを選択すると333が入力できるようにしたいです。 この「表シート」の表がややこしいのですが、 建物の部屋番号に対応しているため、3階2階1階という順になっています。 関数で対応できるものでしょうか? 分かりにくい表ですが、よろしくお願いします。

  • シートを自動にコピーするには

    説明が上手くできないかもしれませんが シート1    A  B   C   D    E     まだ続きますが 項目  氏名 住所 電話 携帯番号 郵便番号 1行  項目を打つと  2行   3行 4行 5行 … 別シートは表になります、転記又は(リンク)で シート1に1行目の  氏名   住所   電話   携帯  郵便番号 2行に文字を入力すると 表がコピーされて各項目が表示されるというようなことがしたいのですが可能でしょうかどうか教えて下さい。(オフィス2003)

専門家に質問してみよう