何をする必要があるかの背後にある基本的な考え方は次のとおりです。
- 作成する新しい列の数を取得します (例:
Total Rows/#rows per column
)
nth + 1
作成する新しい列ごとに、行から最後の行まで切り取ります。ここで、nth
行は必要な列ごとの行数です (この場合は 50)。
- 切り取った行を、データが含まれている最後の列の右側に貼り付けます
- すべての列が作成されるまで繰り返します
ここに、作業を開始するためにまとめたサンプル コードをいくつか示します。これは、データがセル A1 から始まり、各列に最大 10 行が含まれていることを前提としています。必要に応じて値を変更できrowsToSkip
ます。また、これは開始するためのものであり、さらにテストが必要なことに注意してください。必要に応じて変更します。
Public Sub MakeColumnsFromRows()
Dim totalCutsToMake As Integer
Dim currentColumn As Integer
Dim currentCut As Integer
Dim rowsToCut As Integer
Sheets(1).Activate
rowsToSkip = 10
totalCutsToMake = (ActiveSheet.UsedRange.Rows.Count / rowsToSkip)
currentColumn = 1
Dim RowCount As Integer
For currentCut = 1 To totalCutsToMake
RowCount = Cells(Rows.Count, currentColumn).End(xlUp).Row
Range(Cells(rowsToSkip + 1, currentColumn), Cells(RowCount, currentColumn + 1)).Select
Selection.Cut
Cells(1, currentColumn + 2).Select
ActiveSheet.Paste
currentColumn = currentColumn + 2
Next
End Sub
これが行うことは、最初に作成する新しい列の数を見つけ、次に各列の 11 行目から最後の行までを切り取り、データを含む最後の列の後にそれらの値を貼り付けることです。これは、すべての新しい列が作成されるまで行われます。これにより、列ごとに 10 行のデータが残ることに注意してください。これを 50 に変更するには、rowsToSkip
変数をに変更するだけです50
。
前後のスクリーンショットは次のとおりです。
前

後
