「配列データを表示 ループしてセルに表示」
といった検索キーワードでアクセスがありました。
出力するセル範囲を指定したり、WorksheetFunction.Transposeメソッドを組み合わせたりするほうが楽だと思いますが、For~Nextループで出力することももちろん可能です。
1次元配列をFor~Nextループでセルに出力するサンプルマクロ
以下の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セルから横方向に出力する
Dim i As Long
For i = 0 To cnt - 1
Cells(2, i + 2).Value = arr(i)
Next
'B4セルから縦方向に出力する
For i = 0 To cnt - 1
Cells(i + 4, "B").Value = arr(i)
Next
End Sub
サンプルマクロで行っている処理
後半のセルに出力する部分が、ご紹介済みのセル範囲を指定したりWorksheetFunction.Transposeメソッドを組み合わせたりするマクロと異なっています。
カウター変数が「0」から要素の個数分のFor~Nextループを回して、
For i = 0 To cnt - 1
「Cells(2, 2)」で取得できるB2セルから、横方向に配列のデータを出力して、
Cells(2, i + 2).Value = arr(i)
もう一度カウター変数が「0」から、要素数分のFor~Nextループを回して、
For i = 0 To cnt - 1
「Cells(4, "B")」で取得できるB4セルから、下方向に配列データを出力しています。
Cells(i + 4, "B").Value = arr(i)
最終更新日時:2025-01-30 15:21
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAでFor~Nextループを使って配列をセルに出力する