動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2501(ビルド18407.200002クイック実行)ベータチャネル
「vba 配列 セルに貼り付け」
「excel vba 配列 セル に 出力」
「配列に格納された数値をセルに表示」
といった検索キーワードで、時折アクセスがあります。
[スポンサードリンク]
1次元配列をセルに出力するサンプルマクロ
以下のExcelマクロを実行すると、1次元配列arrに格納されているデータがB2セルから右方向に、B4セルから下方向に出力されます。
Sub 配列に格納されているデータをセルに出力する()
'1次元配列の作成
Dim arr As Variant
arr = Array(100, 200, 300, 400, 500)
'配列の要素数を取得する
Dim cnt As Long
cnt = UBound(arr) - LBound(arr) + 1
'B2セルから横方向に出力する
Range("B2").Resize(1, cnt).Value = arr
'B4セルから縦方向に出力する
Range("B4").Resize(cnt, 1).Value = _
WorksheetFunction.Transpose(arr)
End Sub
'1次元配列の作成
Dim arr As Variant
arr = Array(100, 200, 300, 400, 500)
'配列の要素数を取得する
Dim cnt As Long
cnt = UBound(arr) - LBound(arr) + 1
'B2セルから横方向に出力する
Range("B2").Resize(1, cnt).Value = arr
'B4セルから縦方向に出力する
Range("B4").Resize(cnt, 1).Value = _
WorksheetFunction.Transpose(arr)
End Sub
サンプルマクロで行っている処理
上記のExcelマクロで行っている処理は以下のとおりです。
最初に配列変数arrにデータを格納しておきます。
Dim arr As Variant arr = Array(100, 200, 300, 400, 500)
つづいて配列の要素数を変数cntに代入しています。
Dim cnt As Long cnt = UBound(arr) - LBound(arr) + 1
この後が、
「vba 配列 セルに貼り付け」
「excel vba 配列 セル に 出力」
「配列に格納された数値をセルに表示」
と検索なさった方が求めていたコードです。
まず、B2セルから右方向に配列データを出力しています。
Range("B2").Resize(1, cnt).Value = arr
xlwingsのように起点となるセルのみを指定できれば楽なのですが、VBAでは無理なのでRange.Resizeプロパティを使って、配列の要素数と同じ個数のセル範囲を指定しています。
最後に、B4セルから下方向に出力しています。Range("B4").Resize(cnt, 1).Value = _ WorksheetFunction.Transpose(arr)
1次元配列を縦方向に出力するためにWorksheetFunction.Transposeメソッドを組み合わせています。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAで配列をセルに出力する-WorksheetFunction.Transpose