【VBA】一次元配列を横方向にシートに貼り付け【範囲をリサイズする】
作成日:2022-12-04
更新日:2025-10-01

一次元配列を
「横一行」に
貼りたい
「横一行」に
貼りたい
セル範囲をリサイズして一次元配列を貼り付ける
' Paste 1D array horizontally into a worksheet cell
' 一次元配列をシート上に横方向に貼り付ける
Public Sub PasteToCellResize1AryForX( _
ByVal ws As Worksheet, _
ByVal row As Long, _
ByVal col As Long, _
ByRef ary As Variant)
' 要素数 = UBound - LBound + 1(0始まり/1始まりの差異を自然に吸収)
Dim colCount As Long
colCount = UBound(ary) - LBound(ary) + 1
' 横方向に colCount 列分を貼り付け
ws.Cells(row, col).Resize(1, colCount).Value = ary
End Sub

Resizeって?

セル範囲の大きさを変えること
Point:Resize
が欲しいのは「終端インデックス」ではなく要素数
UBound - LBound + 1
を列数にしてResize(1, colCount)
に渡す- 0始まり/1始まりどちらでも自動で正しく要素数が出る
1次元配列×
Resize(1, n)
Always pass “element count” (not an index) to Resize
, computed as UBound - LBound + 1
.Resize
には“要素数”を渡す
Vocabulary
| Lower Bound|下限 |
| Upper Bound|上限 |
| Element Count|要素数 |
| Horizontal Paste|横方向貼り付け |
| Resize|リサイズ |
その他の貼り付け
縦方向の場合
二次元配列の場合

同じ処理をPythonでも書いてみよう
2022-12-04
編集後記:
この記事の内容がベストではないかもしれません。