『集計後の並べ替え』(かえる) 集計後、集計グループ(A列)毎にB列の数値を降順で並べ替えたい。 【Excel2000,Windows2000】 現在は自動記録でグループごとに並べ替えの記録をしてマクロの実行を行っています。 ただ時々グループの行数に増減があり、 その度にセルの数字を1つづつ書き換えている状態なため、 簡単に更新できるような方法があれば、ご教授ください。 Range("B2:E43").Select Selection.Sort Key1:=Range("E2"), Order1:=xlDescending, Key2:=Range("B2") _ , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, SortMethod:=xlPinYin Range("B45:E75").Select Selection.Sort Key1:=Range("E45"), Order1:=xlDescending, Key2:=Range( _ "B45"), Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin     ・     ・     ・     ・ (グループは100ほどあります) (これは、A列ごとにB列を昇順E列を降順で並べ替えてます。) 別の列に集計した数値を使用した計算式が入っていたり、 表示形式やリンク等かなり複雑に組まれたフォーマットに、 毎週更新される別ファイルのデータから数値をVLOOKUPで読み込んでいます。 そのため、並べ替え後の集計作業をせずに集計行が入った状態で、 集計グループごとの並べ替えを行えればと思い質問させて頂きました。 過去ログで検索したつもりですが、もし同様の質問が出ていましたら申し訳ありません。 また、説明に不足等ございましたらご指摘ください。 よろしくお願い致します。 ---- もっと良い方法があると思いますが。。。(ROUGE)   Sub a() Dim i As Long, txt As String txt = "B2:E" For i = 2 To Range("B" & Rows.Count).End(xlUp).Row If Range("B" & i).Value = "" Or i = Range("B" & Rows.Count).End(xlUp).Row Then txt = txt & i - IIf(i = Range("B" & Rows.Count).End(xlUp).Row, 0, 1) b Range(txt) txt = "B" & i + 1 & ":E" End If Next End Sub Sub b(rng As Range) rng.Sort Key1:=rng.Cells(1, 4), _ Order1:=xlDescending, _ Key2:=rng.Cells(1, 1), _ Order2:=xlAscending, _ Header:=xlNo, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin End Sub ---- >ROUGEさん 早速のご回答ありがとうございました。 こちらを参考に、いろいろ試してみようと思います。 ちなみにそのままだと、集計行を削除しないと並べ替えの実行ができませんでした。 (マクロの知識非常に乏しいので、おそらく私の設定の仕方が悪い気がします・・・) とりいそぎお礼まで。(かえる) ---- 状況が良く分からないのですが >集計後 の「集計」とは、 メニュー・データ(D)→集計(B) の事でしょうか? でも >別の列に集計した数値を使用した計算式が入っていたり って事は違うのですかね。 A:B列にどの様なデータがどの様に入っているのか サンプルデータを載せてみるのはどうでしょう。 (HANA)