コピーしたデータを別シートに貼り付ける

幅を調整して貼り付ける
オートフィット

リンクユニット


可変の表をコピーして既存のデータの続きにはりつけるマクロ

データが何行だろうと、下までコピーする

記録のマクロで可変の表をコピーするコードを作成し、多少変更を加えて、 表の途中から貼り付けることができるマクロも作成することにします。

表の続きにデータを貼り付けるケース

日次ごとに集計が必要で、かつそれを集計表にまとめるとか、月次にまとめるとかするようなケースで、 自動でコピーして貼り付けるようなマクロが欲しいことがあります。
前回作成した可変の表データをコピーするコードを変更して、貼り付け先の途中からデータを続けて貼り付けるマクロを作成することにします。

記録されたマクロの中身

それでは、マクロの中身を見てみましょう。
Sub Macro1()
'記録のマクロ
    Selection.CurrentRegion.Select
    Selection.Copy
    Sheets("Sheet2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Columns("A:G").Select
    Columns("A:G").EntireColumn.AutoFit
End Sub
Selection.CurrentRegion.Selectの部分が ショートカットキーの、Ctrl + Shift + * 選択したコードになります。 これで、データが何行だろうと、下まで選択することができます。
Columns("A:G").EntireColumn.AutoFitの部分が 列幅を自動調整するように、AutoFitメソッドを使ったコードになっています。

コードのスリム化

記録のマクロで作成したコードはでも、。十分に簡潔に思えますが、 それでも やはり 重複しているコードなどがありますのでスリムにしたいと思います。
Sub 可変の表をコピーする()
  '長さの変わる表をコピーする
    Selection.CurrentRegion.Copy Sheets("Sheet2").Range("A1")
    Sheets("Sheet2").Range("A1").CurrentRegion.EntireColumn.AutoFit
End Sub
では、スリム化したマクロを実行してみましょう。 その前に、範囲をクリアするコードを実行します。
Sub 表を削除する()
  'はりつけた表を削除する
    Sheets("Sheet2").Range("A1").CurrentRegion.Clear
End Sub
では最初に戻ったところで、 マクロを実行します。表がコピーされ、別シートに貼り付けられました。
今回は、表のデータ数が毎回変わる場合にマクロで別シートにコピーする方法を紹介しました。データが入力