• ベストアンサー

エクセル2013 範囲を取得して並べ替え

A列2行目から9桁の同じ数字が入力されています。 同じ数字が入力されている行数は、いつも同じではありません。 A列の同じ数字の範囲を認識して G列で 「数値に見えるものはすべて数値として並べ替えを行う」で並べ替えを エクセルのマクロで教えてください。 例 A2からA4まで 123456789 の同じ数字 G2からG4まで 1-2-3や2-1-2や2-奥-1など・・・ A5からA6まで 147258369 の同じ数字 G6からG6まで 1-2-3や3-3-3など・・・ 入力されている行数は常に可変です。 途中、空白は存在しません。 宜しくお願いします。

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

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

こんばんは! 標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。 元データはSheet1にあるとして、Sheet2を作業用のSheetとして使用していますので Sheet2は使っていない状態にしておいてください。 尚、1行目は項目行になっていて、すべての列に何らかの項目名が入っているものとします。 Sub Sample1() Dim i As Long, wS As Worksheet Set wS = Worksheets("Sheet2") With Worksheets("Sheet1") .Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row With .Range("A1") .AutoFilter Field:=1, Criteria1:=wS.Cells(i, "A") .CurrentRegion.Sort key1:=.Range("G1"), order1:=xlAscending, Header:=xlYes End With Next i .AutoFilterMode = False wS.Cells.Clear End With End Sub こんな感じではどうでしょうか?m(_ _)m

maron1010
質問者

お礼

素晴らしいです。 動作確認できました。 ありがとうございました。