【Excel VBA】2次元配列を対象セルに簡単に貼り付ける1行コード

エクセルで配列を扱う場合、配列の開始が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を返します。

コメント

タイトルとURLをコピーしました