スマートにシート全体をコピーする方法です。
目次
全体を変数に取り込んでコピーする
Dim a,b
Set a = Workbooks("Book1").Worksheets("Sheet1").UsedRange
Workbooks("Book2").Worksheets("Sheet1").UsedRange.ClearContents '消してるだけ
Set b = Workbooks("Book2").Worksheets("Sheet1").Range("A1")
a.Copy (b)
これだけです。
簡単かつ、高速で処理できます。
UsedRangeとCurrentRegion
今回利用しているUsedRangeですが、これはシート内で利用しているセル全体を指定することができます。
よく利用される.CurrentRegionとの違いは、シート全体かセルの塊かという違いです。
次の図を見てください。
上記のような場合、Range(“A1”).CurrentRegion.SelectはA1を含むセルの塊、つまりRange(“A1:D6”)が選択されます。
一方でActiveSheet.UsedRange.Selectとすると、シート全体なので、Range(“A1:F8”)が選択されます。
おわり
フォルダ内のブックをすべてコピーするとか、そういったときに使えますよね。
コメント