【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
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-

数値に+ 記号を追加 【VBA】正の数値に+記号を追加|Sgn -

[VBA]openbook 【VBA】ブックを開く|OpenBook -

[VBA]Transpose2D Array 【VBA】配列の縦横変換|WorksheetFunction.Transpose は使わない -

ユーザーフォームのタイトルバー非表示 【VBA】ユーザーフォームのタイトルバーを非表示にしてシステムっぽい見た目にする -

[VBA]close booksave or not 【VBA】ブックを閉じる3つの方法|保存して/保存しないで/ブック名で/ -

[VBA]画像として貼り付けCopyPicture 【VBA】セル範囲を画像としてコピーする|CopyPicture