【エクセルマクロ】縦データを横データに入れ替える:自動化が便利

エクセルマクロ_縦データ横データに入れ替える_アイキャッチ エクセルマクロで効率化する

エクセルマクロで、縦データを横データに入れ替えるVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。

縦データを横データに入れ替える

以下のExcelVBAを実行すると、縦データを横データに入替えます。

Sub 縦リストを横リストに並び替え()

Dim i As Long
Dim j As Long
Dim Cnt As Long
Dim YokoLoop As Long
Dim TateLoop As Long
Dim Target As String
Dim LastRow As Long

    '横ループ回数(A~G列)
    YokoLoop = 7

    '縦ループ回数(1~11行目)
    TateLoop = 11

    Cnt = 0
    Target = ""

    '縦ループ
    For i = 1 To TateLoop

        '横ループ
        For j = 1 To YokoLoop
        
            '転記開始行:15行目
            If Cells(i, 1) = Target Then
                LastRow = Cells(15 + Cnt, j).End(xlToRight).Column + 1
                Cells(15 + Cnt, LastRow) = Cells(i, j + 1)
            Else
                If j = 1 And i <> 1 Then
                    Cnt = Cnt + 1
                End If
                Cells(15 + Cnt, j) = Cells(i, j)
            End If

        Next j
        Target = Cells(i, 1)
    Next i

End Sub

 

VBAコードの解説

[If Cells(i, 1) = Target Then] は、以下の値を比較しています。

・処理対象行のA列

・処理対象行の一つ前のA列


 

上記のA列を比較して同じ値の場合は、同じ行に積み上げて転記していきます。

 
 

【エクセルマクロ】縦データを横データに並べる:3倍高速化する手法
...