【エクセルマクロ】縦データを横データに並べる 動画あり

エクセルマクロ 縦データを横データに変換アイキャッチ ExcelVBA

エクセルマクロで、簡単に縦データを横データに並べる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選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説