アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのセルに入力したデーターを別のシートの名簿一覧に記録していくにはどのようなマクロを組めばよいでしょうか?

入力イメージとして、「田中 90 良」この項目は手動で入力するとします。
Sheet1
A   B  C  D  E  F  G
1 日付 氏名 成績 区分
2 9/19 田中 90  優

ここでマクロを実行すると別のシートに

Sheet2
A   B  C  D   E   F  G
1       1組       2組
2    田中 佐藤 小林 近藤 三浦 遠藤
3 9/19 90 

と記録され、次に入力し、

Sheet1
A   B  C  D  E  F  G
1 日付 氏名 成績 区分
2 9/21 小林 80  良

さらにマクロを実行すると

Sheet2
A   B  C  D   E   F  G
1       1組       2組 
2    田中 佐藤 小林 近藤 三浦 遠藤
3 9/19 90 
4 9/21        80

このように記録され、さらに

Sheet1
A   B  C  D  E  F  G
1 日付 氏名 成績 区分
2 9/23 佐藤 95  優

と入力して、さらにマクロを実行すると

Sheet2
A   B  C  D   E   F  G
1       1組       2組
2    田中 佐藤 小林 近藤 三浦 遠藤
3 9/19 90 
4 9/21        80
5 9/23    95

という具合に、氏名と日付が交差するセルにデーターを記録していきたいのですが、
可能でしょうか?
どうかお返事よろしくお願いいたします。

A 回答 (3件)

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

でどうでしょう。

この回答への補足

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

日付は転記されるのですが、「成績」の数値が転記されません。
また、氏名を入力する際に、リストから選択するようにしていますが、それが原因なのでしょうか?
大変お手数ですが、再度お返事よろしくお願いいたします。

補足日時:2008/09/21 14:56
    • good
    • 0

まず1組と2組の中で重複する名前はないのでしょうか?


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

この回答への補足

お返事ありがとうございます。
名前が重複しないようにしております。
日付は入力されていませんので、事前に転記するマクロを記入しました。

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

補足日時:2008/09/21 15:37
    • good
    • 0

#1です



訂正します

Dim x As Integer
Dim y As Long

Dim y As Integer
Dim x As Long

この回答への補足

先ほど転記されない件でお返事いたしましたが、「入力表示画面」のシートの日付が「=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

となって欲しいのです。
お返事よろしくお願いいたします。

補足日時:2008/09/21 16:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!