アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2007を使う超初心者です。
C10~C151を降順で並び替えたをしたいのですが、
その際、A10~A151の項目も並べ替えた時にCをキーにして、
並び替えた時にAとCを項目と合わせてソート出来るように改造したいのですが、
下記、マクロのどこを編集すれば出来るようになるのでしょうか?

Sub sort()

Worksheets("A店舗").Activate
Worksheets("A店舗").Range("A10:C151").sort
Key1:=Worksheets("A店舗").Range("C9"), Order1:=xlDescending, Header:=xlNo

End sub

これは1つのシートを対象にしていますが、実は列と行番号が全く同じのシートが別に2シートあり、
これらにも同じ処理を行いたいと思っています。


最後にもう一つ指定範囲の異なるシートがあり、
上記と同様にA8~A33の項目と、H8~H33をH列をキーとして降順に並び替えがしたいと思います。

Sub sort()

Worksheets("T種類").Activate
Worksheets("T種類").Range("A8:H33").sort
Key1:=Worksheets("T種類").Range("H8"), Order1:=xlDescending, Header:=xlNo

End sub


元々、これらのファイルは別々だったのですが、今回の編集で1つのファイルに纏める事になってしまい、一括して定義しなければならず非常に困っております。

どうか、知識をお持ちの方、ご教示宜しくお願い致します。

A 回答 (2件)

簡単な方法:AをCにくっつけて一緒に並べ替えてから,Aに戻す


sub macro1()
 dim w as worksheet

 for each w in worksheets(array("A店舗","B店舗","C店舗"))
  with w
  .range("A:A").copy
  .range("D:D").insert
  .range("C10:D151").sort key1:=.range("C10"), order1:=xldescending, header:=xlno
  .range("D:D").copy .range("A1")
  .range("D:D").delete shift:=xlshifttoleft
  end with
 next

 with worksheets("T種類")
 .range("A:A").copy
 .range("I:I").insert
 .range("H8:I33").sort key1:=.range("H8"), order1:=xldescending, header:=xlno
 .range("I:I").copy .range("A1")
 .range("I:I").delete shift:=xlshifttoleft
 end with
end sub

#ご相談に説明されてない他のセルに影響するようなら,適切に調整して利用します。



>AとCを項目と合わせてソート出来るように改造したい

ご相談は文字通りには,「A列とC列を一緒に(キーはC列),ただしB列は除外して並べ替えたい」と読めますが?

マクロ以前にそもそもエクセルの使い方として,間を飛ばして「AとCだけを一緒に並べ替える」事は出来ません。
あなたが例示したマクロはもちろん「AとBとCを一緒に並べ替える」なワケです。
    • good
    • 0
この回答へのお礼

keithinさん

ありがとうございます。


はい、keithinさんの仰るとおりの事がやりたかったのです。

グッドアドバイスありがとうございました!

お礼日時:2013/07/22 16:36

C列を「降順」に並べ替えて、かつA列が同じならばその中で


A列の「降順」に並び替えるなら、単純にKeyを追加すればいい
だけです。

Key1:=Worksheets("A店舗").Range("C9"), Order1:=xlDescending, Header:=xlNo
Key2:=Worksheets("A店舗").Range("A9"), Order2:=xlDescending, Header:=xlNo

この辺はこちらを、どぞ。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …

問題は質問者さんの言う「A10~A151の項目も並べ替えた
時にCをキーにして、並び替えた時にAとCを項目と合わせて
ソート出来るように改造」の意味が全く分からないことです。

どうも「C列を「降順」に並べ替えて、かつA列が同じならばその
中でA列の「降順」に並び替える」んじゃなさそうなので・・・。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!