銀河鉄道

【VBA】一次元配列を縦方向にシートに貼り付け【範囲をリサイズする】

サムネイル
[VBA]Vertical Paste1D array
一次元配列を
「縦一行」に
貼りたい

セル範囲をリサイズして一次元配列を貼り付ける

transposeして縦に貼り付ける

' Paste 1D array vertically into a worksheet cell
' 一次元配列をシート上に縦方向に貼り付ける
Public Sub PasteToCellResize1AryForY( _
	ByVal ws As Worksheet, _
	ByVal row As Long, _
	ByVal col As Long, _
	ByRef ary As Variant)

	Dim rowCount As Long
	' 要素数 = UBound - LBound + 1
	rowCount = UBound(ary) - LBound(ary) + 1
	
	' 縦方向に rowCount 行分貼り付け
	ws.Cells(row, col).Resize(rowCount, 1).Value = WorksheetFunction.Transpose(ary)
End Sub

Transposeって?

Transpose

縦と横を入れ替える
小数データであれば WorksheetFunction.Transpose が使える

Microsoft. (n.d.). WorksheetFunction.Transpose method (Excel). https://learn.microsoft.com/en-us/office/vba/api/excel.worksheetfunction.transpose

ちなみに、
リサイズで、セル範囲の大きさを変えている

その他の貼り付け

横方向の場合

二次元配列の場合

同じ処理をPythonでも書いてみよう

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧