• ベストアンサー

Excel VBAでデータを並び替えたい

D~M列に値が10個入っています。 D1,E1の値を取り出して、A1,B1セルに移動させ、 次はF1,G1の値をA2,B2に移動させ、それをL1,M1をA5,B5に移動するまで繰り返し、 次はD2,E2の値をA6,B6へ移動させ、L2、M2まで繰り返します。 横に10個の数値が入っているものから、2つずつ取り出して 2列縦に値を並べたいのです。 元の値が並んでいるところ(D~M列)は、ところどころ値が10ではなく、4だったり、6だったりしますが、 5つ目と6つ目以降、あるいは7つ目と8つ目以降の値も空白としてA,B列に移動させたいです。 ご教示くださいますよう、お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! >元の値が並んでいるところ(D~M列)は、ところどころ値が10ではなく、4だったり、6だったりしますが とありますが、D列は必ず最終行までデータがあるという前提です。 (D列でD~M列の最終行を取得しているため) 色々やり方はあると思いますが、一例です。 Sub Sample1() Dim i As Long, j As Long, cnt As Long Range("A:B").ClearContents For i = 1 To Cells(Rows.Count, "D").End(xlUp).Row For j = 4 To 12 Step 2 cnt = cnt + 1 Cells(i, j).Resize(, 2).Copy Cells(cnt, "A") Next j Next i End Sub こんな感じではどうでしょうか?m(_ _)m

tokyowar
質問者

お礼

あまりに早い回答に驚きました。感謝しきりです。一日無駄にせずにすみました。

すると、全ての回答が全文表示されます。

専門家に質問してみよう