今回の題材の転記範囲は12セルですから、前項「単一セルの転記操作」を12回(12行)書けば転記できるのは誰でも解ります。
Option Explicit
Sub TEST3()
Worksheets("Sheet2").Range("A1").Value = Worksheets("Sheet1").Range("A1").Value
Worksheets("Sheet2").Range("A2").Value = Worksheets("Sheet1").Range("A2").Value
Worksheets("Sheet2").Range("A3").Value = Worksheets("Sheet1").Range("A3").Value
Worksheets("Sheet2").Range("B1").Value = Worksheets("Sheet1").Range("B1").Value
Worksheets("Sheet2").Range("B2").Value = Worksheets("Sheet1").Range("B2").Value
Worksheets("Sheet2").Range("B3").Value = Worksheets("Sheet1").Range("B3").Value
Worksheets("Sheet2").Range("C1").Value = Worksheets("Sheet1").Range("C1").Value
Worksheets("Sheet2").Range("C2").Value = Worksheets("Sheet1").Range("C2").Value
Worksheets("Sheet2").Range("C3").Value = Worksheets("Sheet1").Range("C3").Value
Worksheets("Sheet2").Range("D1").Value = Worksheets("Sheet1").Range("D1").Value
Worksheets("Sheet2").Range("D2").Value = Worksheets("Sheet1").Range("D2").Value
Worksheets("Sheet2").Range("D3").Value = Worksheets("Sheet1").Range("D3").Value
End Sub
ですが、転記するセルがもっと多かったらどうしますか?
※但し、これではワークブックは明示されていません。「自分のブックはどれ?」を参照して下さい。
1つには、同じ行数・列数での転記の場合は、計算式が1行でセットできたのと同じように、セル範囲を指定して1回で転記できます。
Option Explicit
Sub TEST4()
Worksheets("Sheet2").Range("A1:D3").Value = Worksheets("Sheet1").Range("A1:D3").Value
End Sub
Option Explicit
Sub TEST4()
Worksheets("Sheet2").Range("B2:E4").Value = Worksheets("Sheet1").Range("A1:D3").Value
End Sub
このようになります。
なお、転記先が転記元と行数・列数が一致しないと、エラーになるか、少ない範囲で転記されることになります。
さて、マクロが1行に収まらなくなりそうなこともあり、この先の説明にも都合が悪いので、この辺でシートについては一旦オブジェクト変数に格納して、直接「Worksheets("Sheet1")」のように毎回書くのはやめることにしましょう。
Option Explicit
Sub TEST4()
Dim objSh1 As Worksheet ' Sheet1
Dim objSh2 As Worksheet ' Sheet2
Set objSh1 = Worksheets("Sheet1")
Set objSh2 = Worksheets("Sheet2")
objSh2.Range("B2:E4").Value = objSh1.Range("A1:D3").Value
End Sub
このように、見やすくなります。
このサンプルでは、オブジェクト変数を使ったところで1回しか参照しないので意味がありませんが、先ほどの12行の場合などは無意味ではなくなります。