Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAでFor~Nextループを使って配列をセルに出力する

VBAでFor~Nextループを使って配列をセルに出力する

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2501(ビルド18407.200002クイック実行)ベータチャネル

「配列データを表示 ループしてセルに表示」
といった検索キーワードでアクセスがありました。

出力するセル範囲を指定したり、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ループを使って配列をセルに出力する

「配列」の記事一覧

検索


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

.