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つのファイルに纏める事になってしまい、一括して定義しなければならず非常に困っております。
どうか、知識をお持ちの方、ご教示宜しくお願い致します。
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を一緒に並べ替える」なワケです。
keithinさん
ありがとうございます。
はい、keithinさんの仰るとおりの事がやりたかったのです。
グッドアドバイスありがとうございました!
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/v …
問題は質問者さんの言う「A10~A151の項目も並べ替えた
時にCをキーにして、並び替えた時にAとCを項目と合わせて
ソート出来るように改造」の意味が全く分からないことです。
どうも「C列を「降順」に並べ替えて、かつA列が同じならばその
中でA列の「降順」に並び替える」んじゃなさそうなので・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) 他のシートからコピーする下記マクロで貼付け位置をWorksheets(1).Range("A3")の 8 2023/01/30 18:48
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) Excelのマクロコードについて教えてください 1 2022/03/27 12:02
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】 通し番号の入力について
-
結合したセルの並び替え(エク...
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
複数のマクロボタンをまとめて...
-
エクセルの表を複数枚印刷した...
-
エクセル マクロ名にブック名...
-
エクセルの、記録を終了したマ...
-
excelで直前に参照していたブッ...
-
【Excel】マクロの保存先について
-
マクロの保存先、開いてるすべ...
-
エクセルで空白行を削除する ...
-
マクロで最終行を取得してコピ...
-
【Excel VBA】マクロでExcel自...
-
Excelでマクロ実行中に画面を固...
-
エクセルファイルを値でのみし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
結合したセルの並び替え(エク...
-
配列内データにsmallを使う
-
【VBA】 通し番号の入力について
-
Exelの表を以下のように全行組...
-
楽天RSS エクセルのマクロで10...
-
UWSCでie内のデータを取得しエ...
-
Excel VBA データ差し込みPDF...
-
Excel vba PDF 複数ファイルを...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
エクセルの、記録を終了したマ...
-
エクセル マクロ名にブック名...
-
マクロの保存先、開いてるすべ...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
【Excel VBA】マクロでExcel自...
おすすめ情報