マクロでシート2~6のデータをシート1に転記したい
マクロでシート2~6のデータをシート1に転記したいです。
シート2~6のデータを
シート1に順番に転記したくてマクロの記録を利用して作成しました。
シート2~6は列は同じですが行数は異なります。
また行数は作業の都度異なります。
同じ記述が繰り返されているので
もう少し記述が短くできるのではと思うのですが
どうすればいいでしょうか?
Sub データ更新()
'シート1の前回データをクリア
Sheets("シート1").Select
Range("A2:Q2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
Range("A2").Select
Sheets("シート1").Select
Range("A1").Select
Sheets("シート2").Select
Range("A1").Select 'ヘッダーも合わせて取得
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("シート1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
Sheets("シート3").Select
Range("A2").Select 'データのみ取得
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("シート1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
Sheets("シート4").Select
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("シート1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
Sheets("シート5").Select
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("シート1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
Sheets("シート6").Select
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("シート1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Selection.Offset(1, 0).Select
End Sub
お礼
違いは一つ目はマクロを作ったあとにボタンを作ってリンクさせて、二つ目はボタンを作ったあとに新規マクロでマクロを作成した点です。 エクセルは閉じてもいないので保存の仕方ではないと思います。 もう少し勉強します。