エクセルで配列を扱う場合、配列の開始が0から始まるため、慣れるまではその都度考える必要があります。
この記事では、配列の数を考えずにコピペで使えるコードをご紹介します。
UBound関数を使って2次元配列を簡単に対象セルに貼り付ける
次のコードは、B2~F5の範囲を配列に保存し、H2のセルを起点に配列を貼り付けるコードです。
Sub 二次元配列貼り付け()
'配列と出力するセルを宣言
Dim MyArray() As Variant
Dim OutPnt As Range
'配列を出力するセルを設定
Set OutPnt = ActiveSheet.[H2]
'配列に保存する
MyArray = Range("B2:F5")
'配列を貼り付ける
Range(OutPnt, OutPnt.Cells(UBound(MyArray, 1), UBound(MyArray, 2))) = MyArray
End Sub
次のエクセルでコードを実行した場合の結果です。
■実行前
■実行後
UBound関数って何?
UBound関数は、配列の大きさを返します。
先ほどのコードでUBound(MyArray,1)は、1次元(行)の最大値4を返します。UBound(MyArray,2)は2次元(列)の最大値5を返します。
UBound関数の2つ目の引数は省略可能です。UBound(MyArray)のみの場合、1次元の最大値4を返します。
コメント