【ExcelVBA】複数列の縦データを横1行にまとめるColumn-Rows-change

Excel

ad2

【ExcelVBA】複数列の縦データを横1行にまとめるColumn-Rows-change

サンプルExcel

業務でデータを扱っていると、下記のようなデータを分析するときに、

横一行にしたいときってありますよね。

そんなときに一括で横一行に並び替えるVBAを作成しましたので紹介します。

excel_column_row_change

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,・・・というような横一行にしたい。

VBA

Option Explicit

Sub 複数行のデータを1行にまとめる()

Dim i As Long
Dim Last_Clm As Long
Dim Target_Clm As Long
Dim irows As Long

    '転記開始列
    Target_Clm = 1

    irows = Cells(Worksheets("元データ").Rows.Count, 1).End(xlUp).Row
    
    '行分ループ
    For i = 1 To irows

        '最終列を取得
        Last_Clm = Worksheets("元データ").Cells(i, Worksheets("元データ").Columns.Count).End(xlToLeft).Column

        'コピ-して貼り付け
        Worksheets("元データ").Range(Worksheets("元データ").Cells(i, 1), Worksheets("元データ").Cells(i, Last_Clm)).Copy Worksheets("変換後").Cells(1, Target_Clm)

        '転記開始列
        Target_Clm = Worksheets("変換後").Cells(1, Worksheets("元データ").Columns.Count).End(xlToLeft).Column + 1

    Next i

End Sub

 

実行結果

上記のVBAを実行すると、

excel_column_row_change_result

横一行にデータを並び替えることができています。

ぜひ、業務に活用してみて下さい。