• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロのソートについて)

マクロのソートについて

このQ&Aのポイント
  • マクロを使用して、Excelのセルデータのソートを行いたい場合、以下の方法を試してみてください。
  • まず、D列を最初にソートし、その後でB列とC列を連動させてソートします。
  • 上記の手順で実行すれば、問題なくセルデータのソートができるはずです。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>新たに、D列を最初にソート、後からB列・C列を連動させてソートしたい Sheets("QQQQQQQQ")に転記したデータをソートするのですね? Sub Macro1()  Dim Rng As Range  Dim LastRow As Long  Application.ScreenUpdating = False  For Each Rng In Sheets("ZZZZZZZ").Range("B2:B100")   If Rng.Value <> "" Then    LastRow = Sheets("QQQQQQQQ").Cells(Rows.Count, "B").End(xlUp).Row    Sheets("QQQQQQQQ").Cells(LastRow + 1, "B").Resize(1, 3).Value = Rng.Resize(1, 3).Value   End If  Next  '<<<<< ここからソート処理 >>>>>  'コピペでるようにしたのでが、新たに、D列を最初にソート、  '後からB列・C列を連動させてソートしたいのですが  With Sheets("QQQQQQQQ")   .Range("B1").CurrentRegion.Sort _   Key1:=.Range("D2"), Order1:=xlAscending, _   Key2:=.Range("B2"), Order2:=xlAscending, _   Key3:=.Range("C2"), Order3:=xlAscending, _   Header:=xlYes  End With  '※それとも、D列、B列、C列と列毎に並べ替えるのなら  With Sheets("QQQQQQQQ")   .Range("D1", .Cells(Rows.Count, "D").End(xlUp)).Sort _   Key1:=.Range("D2"), Order1:=xlAscending, Header:=xlYes   .Range("B1", .Cells(Rows.Count, "B").End(xlUp)).Sort _   Key1:=.Range("B2"), Order1:=xlAscending, Header:=xlYes   .Range("C1", .Cells(Rows.Count, "C").End(xlUp)).Sort _   Key1:=.Range("C2"), Order1:=xlAscending, Header:=xlYes  End With  Application.ScreenUpdating = True End Sub ソートは全て昇順(xlAscending)で行っております。 降順ならxlDescendingを設定してください。

rr5se
質問者

お礼

ありがとうございました。できました。降順までも紹介下さり、ご配慮を感じています。今後ともよろしくお願いします。

関連するQ&A