参考元:【VBA】Rangeで取得した範囲を変更する【Resizeを使います】
https://daitaideit.com/vba-range-resize/
ポイントとなるVBAコード
Range("A1").Resize(4, 3).Select '4行3列に変更
Range("A1:C4").Resize(1).Select '1行に変更
Range("A1:C4").Resize(, 1).Select '1列に変更
VBAで配列の値をセルに入力
Resizeを使わない場合
Sub TEST8()
Dim A
'表のセル範囲を取得
A = Range("A1").CurrentRegion
'セルに入力
Range("E1:G4") = A '←ここがめんどくさい
End Sub
こんな感じになりますよね。
Resizeを使って配列をセルに入力
Sub TEST9()
Dim A
'表のセル範囲を取得
A = Range("A1").CurrentRegion
'セルへ入力 ⇒セル範囲を自動で設定できる
Range("E1").Resize(UBound(A, 1), UBound(A, 2)) = A
End Sub
配列の大きさを、『Ubound』で調べて、『Resize』で大きさを変更しています。
ここで、Uboundは、
Ubound(配列, 1):配列の行数
Ubound(配列, 2):配列の列数
という感じで取得できます。
入力先のセル範囲に、定数がないですよね。ここがいいんです。