Excel VBA マクロを使用して、データ行をコピーして別の行とずらした列に貼り付けます。

Excel VBA マクロを使用して、データ行をコピーして別の行とずらした列に貼り付けます。

次の手順を自動化しようとしています。Excel データの 1 行から、各セルの値をコピーして、図に示すように列ごとにずらしながら別々の行に貼り付けたいと思います。この手順を実行できる VBA マクロ コードはありますか? よろしくお願いします。

意図した出力のスクリーンショット

答え1

Offset と呼ばれる VBA 関数があります。行 1 のセルをループしながら変数を増分し、それを使用して各値の Offset を制御します。

Option Explicit

Sub staggerRows()

    Dim i As Long, rng As Range

    With Worksheets("sheet1")

        For Each rng In .Range(.Cells(1, "B"), .Cells(1, .Columns.Count).End(xlToLeft))

            i = i + 1
            rng.Offset(i, 0) = rng.Value2

        Next rng

    End With

End Sub

関連情報