エクセルマクロで、簡単に縦データを横データに並べるVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください😉
縦データを横データに並べる(3行→1列)
以下のExcelVBAを実行すると、縦のデータを横に並べます。
Sub 縦リストを横リストに変換()
Dim i As Long
Dim Q As Long
Dim Z As Long
Dim LastRow As Long
Dim myList As Variant
'A列のデータを配列に格納
myList = Range("A1", Range("A" & Rows.Count).End(xlUp))
'最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Z = 1
'列をループ
For i = 1 To LastRow / 3
'配列を3つ分ループ
For Q = 0 To 2
'D~F列に配列を転記
Cells(i, Q + 4) = myList(Z, 1)
Z = Z + 1
Next Q
Next i
End Sub
マクロ実行後
縦に並んでいるデータを、3行ごとに横に並べ替えます。

縦データの値の取得について
2次元配列を使って、縦データの値をすべて取得します。
[myList = Range(“A1”, Range(“A” & Rows.Count).End(xlUp))]
例えば、セルA1:A3の値の取得状況を、
ウォッチウィンドウで見てみると、以下のようになります。
・A店 → [myList(1, 1)]
・アケビ → [myList(2, 1)]
・251 → [myList(3, 1)]

縦データを横データに並べる(2行→1列)
以下のExcelVBAを実行すると、縦のデータを横に並べます。
Sub 縦リストを横リストに変換()
Dim i As Long
Dim Q As Long
Dim Z As Long
Dim LastRow As Long
Dim myList As Variant
'A列のデータを配列に格納
myList = Range("A1", Range("A" & Rows.Count).End(xlUp))
'A列の最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Z = 1
'列をループ
For i = 1 To LastRow / 2
'配列を2つ分ループ
For Q = 0 To 1
'D~E列に配列を転記
Cells(i, Q + 4) = myList(Z, 1)
Z = Z + 1
Next Q
Next i
End Sub
マクロ実行後
縦に並んでいるデータを、2行ごとに横に並べ替えます。

この記事がお役に立ちますと幸いです。

【エクセルマクロ】データ並べ替えを自動化する:超便利7選
エクセルマクロで、データ並べ替えを自動化するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!
[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう
ChatGPTと対話しながら身につける、新しいVBA入門
リンク
★★★★★ 4.6 ※ Amazonカスタマーレビューより
✓マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
✓「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
✓変数・条件分岐・ループなどVBAの基礎もしっかり解説されている