• ベストアンサー

Excelデータを並べ替え

 いつもお世話になります。  急ぎで、以下のことをしたいのですが、Excelのマクロで何とかなりませんか? A B C D E F  このように300程の数字が、横に3つずつ区切ってセルに入っています。これを、 A B C のようにすべてA列に縦に並べ替えたいのですが。  申し訳ないですが、急ぐのでよろしくお願いします。

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

A列からC列にデータがあるとしてE列に展開 Sub データを並べ替え() Dim MaxRow As Integer Dim wVal As Variant Dim wR As Integer Dim wC As Integer ' MaxRow = ActiveSheet.Range("A1").End(xlDown).Row wVal = ActiveSheet.Range("A1:C" & MaxRow) wR = 0 For wIx = 1 To UBound(wVal) For wCol = 1 To 3 wR = wR + 1 ActiveSheet.Cells(wR, 5) = wVal(wIx, wCol) Next Next End Sub (1) Alt+F11 (ツール -> マクロ -> Visual Basic Editor) (2) 挿入 -> 標準モジュール -> 上記のモジュールを貼り付けて実行(F5を押す)する

dogs59
質問者

お礼

本当に無理なお願いをしたのに、ありがとうございました。 すごく助かりました。

その他の回答 (2)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

No2 です。間違いました。 Sub データを並べ替え() Dim MaxRow As Integer Dim wVal As Variant Dim wR As Integer Dim wC As Integer ' MaxRow = ActiveSheet.Range("A1").End(xlDown).Row wVal = ActiveSheet.Range("A1:A" & MaxRow) wR = 0 For wIx = 1 To UBound(wVal) For wCol = 1 To 3 wR = wR + 1 ActiveSheet.Cells(wR, 5) = Mid(wVal(wIx, 1), wCol, 1) Next Next End Sub

dogs59
質問者

お礼

No.2で合っていると思いますが。 No.3でマクロを走らせるとおかしな数字の羅列になります。 1桁ずつ(1文字ずつ)に分解されるような。

  • skyresort
  • ベストアンサー率63% (21/33)
回答No.1

現状、セルA1にABC、A2にDEFとなっていて、 A1にA、A2にB、A3にC、A4にD・・・のようにしたいということでしょうか?

dogs59
質問者

補足

はい。説明が悪くてすみません。その通りです。 申し訳ないですが、本当に急ぐので、よろしくお願いします。

関連するQ&A

専門家に質問してみよう