- ベストアンサー
エクセル2007 入力データを転記する方法
- 部署で在庫管理を明確化するためにエクセルに在庫の部品名、個数、保管場所を表として管理しています。検索できるように関数で検索表を作成しました。しかし、実現したいことは、あるセルに日付、部品名、使用内容を入力したら、別のシートに転記することです。具体的に記述すると、Sheet1のA2に日付、B2に部品名、C2に使用内容を入力すると、Sheet2の下に追加していきたいです。
- Sheet1のA2、B2、C2に入力された内容をSheet2に転記するとき、Sheet2は一度記述した内容を保持し、新しい書き込み内容があるごとに追記していきたいです。VBAを勉強することも考えましたが、できれば関数で実現したいです。
- 現在業務上、在庫管理システムがしっかりしていないため、パソコン上で在庫確認を早く行い、個数をしっかり管理し、使用内容を明確にすることが目標です。関数での実現方法を教えていただきたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo2 です。 すみません。駄目の見本のようなコードを書いてしまいました。 お昼に何を食べようか考えていて、まるで初心者のようなミスをしておりました。 (おなかが膨れたら気が付きました) 赤面です。(///▽///) 修正します。 Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Intersect(Target, Range("A2:C2")) Is Nothing Then Exit Sub If Target.Count > 1 Then If Application.CountA(Target) > 0 Then MsgBox "複数セルの同時入力しないでください。" Application.EnableEvents = False Application.Undo Application.EnableEvents = True Exit Sub End If End If With Sheets("Sheet2") i = .Cells(Rows.Count, Target.Column).End(xlUp).Offset(1).Row .Cells(i, Target.Column).Value = Target.Value End With End Sub 3セルとも確定後 ボタンを押して転記なら 以下を標準モジュールに書いて、ワークシート上に配置した「フォーム」のボタンにセットしてください。 Sub Tenki() Dim i As Long With Sheets("Sheet2") i = .Cells(Rows.Count, "A").End(xlUp).Offset(1).Row .Range(.Cells(i, "A"), .Cells(i, "C")).Value = Sheets("Sheet1").Range("A2:C2").Value End With End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
記録として残しておきたいのならVBAでするしかないですね。 では全自動で実行するマクロの一例です。 手順は下記のとおりです。 1. 該当するシート(Sheet1)のタブを右クリックして、[コードの表示]。 2. 出てきた白い所に、以下のコードを貼付けます。 '********これより下********** Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Intersect(Target, Range("A2:C2")) Is Nothing Then Exit Sub With Sheets("Sheet2") i = .Cells(Rows.Count, "A").End(xlUp).Offset(1).Row .Range(.Cells(i, "A"), .Cells(i, "C")).Value = Range("A2:C2").Value End With End Sub '********これより上********** 3.Alt+F11キーでワークシートへもどります。 これでOK A2からC2に入力する都度自動で実行されます。
お礼
回答ありがとうございます。 さらに、VBAのコードまでありがとうございます。 早速やってみましたが、望んでいるような動きになりました。 しかし、一度入力ミスをするとそのミスまで反映されるようです。 少し私自身でも調べながらやってみます。 一番いいのは入力後釦など設置して釦押下したら転記できるような方向にしてみようと思います。
- aokii
- ベストアンサー率23% (5210/22062)
あるセルに日付、部品名、使用内容という3つの項目を入力したら、別シートに転記するというものでしたら、その別シートに直接入力したほうがいいと思いますが、どうしても自動転記が必要でしたらVBAになります。
お礼
早速の回答ありがとうございます。 やはり、直接入力が一番ですか。 やはりVBAになりますよね。 関数でできるのであれば良かったのですが・・・・ ありがとうございました。
お礼
回答ありがとうございます!!! 大変助かりました。自分がやりたいことがまさにできました!!! ありがとうございます。