エクセルで列を複数行にしたいのですが - 教えて!goo

マクロでやる方法です。Sheet1に元の表があって、Sheet2に並べ替えた表を作成します。

Alt+F11でVBAの画面を表示し、「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。
マクロ中に出てくる"Sheet1"、"Sheet2"が実際のシート名と違ったら書き換えてください。

Sub 並び替え()
 Dim WS1 As Worksheet, WS2 As Worksheet
 Dim FromRow As Integer, FromCol As Integer
 Dim ToRow As Integer
 
 Set WS1 = Worksheets("Sheet1") '元の表があるシート
 Set WS2 = Worksheets("Sheet2") '表を並べ替えて転記するシート
 WS2.Cells.ClearContents
 For FromRow = 1 To WS1.Cells(Rows.Count, 1).End(xlUp).Row
  For FromCol = 3 To WS1.Cells(FromRow, Columns.Count).End(xlToLeft).Column Step 2
   ToRow = ToRow + 1
   WS1.Cells(FromRow, 1).Resize(1, 2).Copy WS2.Cells(ToRow, 1)
   WS1.Cells(FromRow, FromCol).Resize(1, 2).Copy WS2.Cells(ToRow, 3)
  Next
 Next
End Sub

その画面でF5キーを押すか、F11でExcelの画面に戻ってAlt+F8からマクロを実行してみてください。表が4列ずつになってSheet2に転記されているはずです。

エクセル(Excel)技道場−編集