セルにデータを一括挿入する|Excel VBA |
配列を使い、セルにデータを一括挿入することができます。
データの数が多い場合は、セルに1つずつ値を代入するより高速です。
行方向(A1〜J1など)のセルに値を格納するには、1次元配列から一括挿入できますが、
列方向(A1〜A10など)のセルの場合は2次元配列を使用します。
配列の要素は0から始まり、要素数は格納するセルの数だけ必要です。
次のサンプルは、100個のデータをセルA1:A100に一括挿入します。
Sub Sample()
Dim inpData() As Variant
Dim i As Long
'データ100個分の要素を用意する
ReDim inpData(99, 0)
For i = 0 To 99
inpData(i, 0) = "データ" & i
Next i
Range("A1").Resize(UBound(inpData) + 1, 1).Value = inpData '--(1)
End Sub
For...Nextステートメントで配列に格納したデータを、(1)で一括してセルに代入します。
このとき、代入先のセル範囲の大きさと、配列の大きさを一致させるのがポイントです。
配列の要素数の上限値をUBoud関数で取得し、Resizeメソッドと組み合わせて指定します。
配列の要素番号が0から始まるため、UBound関数の戻り値に1を加える点に気を付けてください。