出題内容
「Sheet1」のA1:C5のセル範囲を、「Sheet2」のA1:C5にコピーしてください。
値も数式も書式も全てコピーしてください。 ただしSelectメソッドは使用禁止
※行高と列幅の設定はしなくて良い。
回答
Sub vba001()
Sheets("Sheet1").Range("A1:C5").Copy _
Destination:=Sheets("Sheet2").Range("A1")
End Sub
Destinationは省略できる。
形式を指定して貼り付ける場合
Sheets("Sheet1").Range("A1:C5").Copy
Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
一旦クリップボードに保存される。
マクロ実行中にPCを操作すると正しく動作しなくなる。
コピー範囲・貼付範囲を変数に格納。
コピー範囲はデータ量に応じて行数を変動させる。
Sub vba001()
Dim LastRow As Long
Dim コピー範囲 As Range
Dim 貼付範囲 As Range
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Set コピー範囲 = Sheets("Sheet1").Range("A1:C" & LastRow)
Set 貼付範囲 = Sheets("Sheet2").Range("A1")
コピー範囲.Copy 貼付範囲
End Sub
【PasteSpecialメソッド】