Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAで配列をセルに出力する-WorksheetFunction.Transpose

VBAで配列をセルに出力する-WorksheetFunction.Transpose

動作検証バージョン: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

サンプルマクロで行っている処理

上記の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

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.