• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel マクロの複数範囲指定方法について)

Excel マクロの複数範囲指定方法について

このQ&Aのポイント
  • Excel2007を使う超初心者です。C10~C151を降順で並び替えたをしたいのですが、その際、A10~A151の項目も並べ替えた時にCをキーにして、並び替えた時にAとCを項目と合わせてソート出来るように改造したいのですが、下記、マクロのどこを編集すれば出来るようになるのでしょうか?
  • 1つのシートに加えて、別に2つのシートにも同じ処理を行いたいと思っています。
  • 最後にもう一つ指定範囲の異なるシートがあり、上記と同様にA8~A33の項目と、H8~H33をH列をキーとして降順に並び替えがしたいと思います。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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を一緒に並べ替える」なワケです。

sclub7
質問者

お礼

keithinさん ありがとうございます。 はい、keithinさんの仰るとおりの事がやりたかったのです。 グッドアドバイスありがとうございました!

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

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/vba_sort.html 問題は質問者さんの言う「A10~A151の項目も並べ替えた 時にCをキーにして、並び替えた時にAとCを項目と合わせて ソート出来るように改造」の意味が全く分からないことです。 どうも「C列を「降順」に並べ替えて、かつA列が同じならばその 中でA列の「降順」に並び替える」んじゃなさそうなので・・・。

関連するQ&A