• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの入力データーを別のシートの日付と氏名の交差点に記録していくマクロ)

エクセル入力データの別シートへの記録マクロ

このQ&Aのポイント
  • エクセルの入力データを別のシートの日付と氏名の交差点に記録するマクロの作り方を教えてください。
  • 入力したデータを別のシートの名簿一覧に記録するためのマクロを組む方法を教えてください。
  • 田中さんの成績や日付などを入力したデータをシート2に自動的に記録するエクセルマクロの作り方を教えてください。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

Sheet2に氏名と日付が入力済みであると仮定します。 Sub Sample() Dim x As Integer Dim y As Long x = Application.Match(Sheets("Sheet1").Range("a2"), Sheets("Sheet2").Columns(1), 0) y = Application.Match(Sheets("Sheet1").Range("b2"), Sheets("Sheet2").Rows(2), 0) Sheets("Sheet2").Cells(x, y) = Sheets("Sheet1").Range("c2") End Sub でどうでしょう。

shosin999
質問者

補足

keirikaさんへ お返事ありがとうございます。 いろいろやってみて以下のようになりましたが、うまく転記できません。 日付を先に転記するようにしました。 Sub Macro001()'日付を転記する Range("A2").Select Selection.Copy Sheets("データ").Select Range("A65536").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste Sheets("入力表示画面").Select Application.CutCopyMode = False Range("C3").Select 'データを転記する Dim y As Integer ’ここと Dim x As Long  ’ここは変更しました x = Application.Match(Sheets("入力表示画面").Range("a2"), Sheets("データ").Columns(1), 0) y = Application.Match(Sheets("入力表示画面").Range("b2"), Sheets("データ").Rows(2), 0) Sheets("データ").Cells(x, y) = Sheets("入力表示画面").Range("C2") End Sub です。みにくかったサンプルを訂正しました。参考にしてください。 Sheet(入力表示画面)    A   B   C   D  E  F  G 1 日付 氏名 成績 区分 2 9/23 佐藤 95  優 と入力して、さらにマクロを実行すると sheet(データ)    A  B   C   D    E   F   G 1       1組       2組 2    田中 佐藤 小林 近藤 三浦 遠藤 3 9/19 90  4 9/21        80 5 9/23    95 日付は転記されるのですが、「成績」の数値が転記されません。 また、氏名を入力する際に、リストから選択するようにしていますが、それが原因なのでしょうか? 大変お手数ですが、再度お返事よろしくお願いいたします。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

まず1組と2組の中で重複する名前はないのでしょうか? あとSheet1からSheet2へ転記する際にSheet2のA列(B列?)の日付は事前に記載されているのでしょうか? (提示されたサンプルではそうは見えないのですが)

shosin999
質問者

補足

お返事ありがとうございます。 名前が重複しないようにしております。 日付は入力されていませんので、事前に転記するマクロを記入しました。 Sub Macro001() Range("A2").Select Selection.Copy Sheets("sheet2").Select Range("A65536").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste Sheets("Sheet1").Select Application.CutCopyMode = False Range("A3").Select end sub です。 また、みにくかったサンプルも訂正しました。参考にしてください。 ※sheet1は「入力表示画面」、Sheet2は「データ」としました。 Sheet(入力表示画面)    A   B   C   D  E  F  G 1 日付 氏名 成績 区分 2 9/23 佐藤 95  優 と入力して、さらにマクロを実行すると sheet(データ)    A  B   C   D    E   F   G 1       1組       2組 2    田中 佐藤 小林 近藤 三浦 遠藤 3 9/19 90  4 9/21        80 5 9/23    95

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

#1です 訂正します Dim x As Integer Dim y As Long ↓ Dim y As Integer Dim x As Long

shosin999
質問者

補足

先ほど転記されない件でお返事いたしましたが、「入力表示画面」のシートの日付が「=NOW()」だったのでダメだったのでした。 そして、同じ日付でしたら最下位の日付の列に入力されるのではなく、最上段の日付の列に入力されます。 入力後のイメージとしては、 Sheet(データ) A   B  C  D   E   F  G 1       1組       2組 2    田中 佐藤 小林 近藤 三浦 遠藤 3 9/19 90  4 9/21         80 5 9/21    95 6 9/21            95 7 9/22                 95 となって欲しいのです。 お返事よろしくお願いいたします。

関連するQ&A