- ベストアンサー
エクセルで部品管理を自動化する方法とは?
- エクセルで工場で扱っている部品を管理するために、入力用シートと別シートのデータを自動的に貼り付ける方法を探しています。
- 現在は500以上の項目があり、手動で貼り付ける作業が膨大になってしまっています。
- 予算の都合でデータベースを使うことができず、エクセルで管理する必要があります。マクロや他の方法を活用して自動化する手段を教えていただけると助かります。
- みんなの回答 (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 に置き換えてください。
その他の回答 (1)
- nao-y
- ベストアンサー率58% (111/190)
マクロでできます。 以下を前提としたソースコードです。 ・入力シートのシート名は「入力」 ・部品ごとのシートのテンプレートをシート名「テンプレート」として準備 ・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行で表すのか仕入先の件数分の行数を使うのかによって ソースコードが変わってきます。 その辺りどうなってますか? それによって、ソースコードを見ながらどう改変すればよいか検討してみてください。
お礼
早速の回答ありがとうございます。 早速実行して驚きました。 一つ問題がありまして、 入力シートから新しいシートにデータ入力はされるのですが、テンプレートが活用されていないみたいなんです。 空白部にデータ値のみ入力されている感じです。 ソースコードを自分なりにさわってみたのですが、解決できませんでした。 ご指導よろしくお願いします。
お礼
ソースを修正したら、無事にできました。 これであっという間に処理できます。 ありがとうございました。 修正部分ですが、これをベストアンサーとさせていただきました。