Page 358 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼並べ替えをしたいのです。 hiro_kun 02/11/16(土) 15:07 ┗Re:並べ替えをしたいのです。 ぴぎゃ!!(反省中) 02/11/16(土) 15:52 ┗Re:並べ替えをしたいのです。 hiro_kun 02/11/18(月) 17:04 ┗Re:並べ替えをしたいのです。 ぴぎゃ!!(反省中) 02/11/19(火) 0:35 ┗Re:並べ替えをしたいのです。 hiro_kun 02/11/19(火) 10:32 ─────────────────────────────────────── ■題名 : 並べ替えをしたいのです。 ■名前 : hiro_kun ■日付 : 02/11/16(土) 15:07 -------------------------------------------------------------------------
はじめまして、VBA初心者です。 多くの条件で並べ替えをしたいのですがうまく出来ません。 A B C D E a 1 11 201 15 a 3 17 205 26 b 1 11 201 51 a 2 12 202 62 b 2 11 206 52 上記の場合で 第一条件Aで昇順 第二条件Bで昇順 第三条件Cで昇順 第四条件Dで昇順 で並べ替えをしたいのです。sortでは第三条件までしかできないのでどなたかお教えください。当方は第五条件まで設定したいと思ってます。 宜しくお願いします。 |
hiro_kunさん、こんにちは。 >sortでは第三条件までしかできないので Sortを複数回行うことで実現できます。 '自動記録… ' 'アクティブなシートの "A1:E6"(ヘッダあり) 'を昇順で並べ替えます(列番号が若いほど優先されます)。 Sub Macro1() Range("A1:E6").Select With Selection '最優先:D列, 2番目 :E列 .Sort _ Key1:=Range("D2"), Order1:=xlAscending, _ Key2:=Range("E2"), Order2:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom '最優先:A列, 2番目 :B列, 3番目 :C列 .Sort _ Key1:=Range("A2"), Order1:=xlAscending, _ Key2:=Range("B2"), Order2:=xlAscending, _ Key3:=Range("C2"), Order3:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom End With End Sub それでは。 |
▼ぴぎゃ!!(反省中) さん、こんにちは。 ご返信ありがとうございます。 ご返事遅くなりました。 試してみましたが一回目のソートが残らず二番のソートで並び替えになります。 何か設定がおかしいのでしょうか? 当方は2000バージョンです。 宜しくお願いします。 >hiro_kunさん、こんにちは。 > > >>sortでは第三条件までしかできないので > >Sortを複数回行うことで実現できます。 > > >'自動記録… >' >'アクティブなシートの "A1:E6"(ヘッダあり) >'を昇順で並べ替えます(列番号が若いほど優先されます)。 >Sub Macro1() > Range("A1:E6").Select > With Selection > '最優先:D列, 2番目 :E列 > .Sort _ > Key1:=Range("D2"), Order1:=xlAscending, _ > Key2:=Range("E2"), Order2:=xlAscending, _ > Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom > '最優先:A列, 2番目 :B列, 3番目 :C列 > .Sort _ > Key1:=Range("A2"), Order1:=xlAscending, _ > Key2:=Range("B2"), Order2:=xlAscending, _ > Key3:=Range("C2"), Order3:=xlAscending, _ > Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom > End With >End Sub > >それでは。 |
hiro_kunさん、こんばんは。 >一回目のソートが残らず すみません、この部分が理解できませんでした。 ・No1802の表 A B C D E a 1 11 201 15 a 3 17 205 26 b 1 11 201 51 a 2 12 202 62 b 2 11 206 52 ・1回目[最優先:D列, 2番目:E列](条件は3つまでなのでまず第4・第5条件で並べ替え) A B C D E a 1 11 201 15 b 1 11 201 51 a 2 12 202 62 a 3 17 205 26 b 2 11 206 52 ・2回目[最優先:A列, 2番目:B列, 3番目:C列](第1〜第3条件で並べ替え) A B C D E a 1 11 201 15 a 2 12 202 62 a 3 17 205 26 b 1 11 201 51 b 2 11 206 52 条件は3つまでですので、上記のとおり2回ソートを行っているのですが… 1回目の結果が異なる、ということでしょうか? それと、並べ替えにSelectは不要ですので(頭使ってないのが…)、 Range("A1:E6").Select With Selection ↓ With Range("A1:E6") に変更してください。 当方もExcel2000(9.0.6926 SP-3)です。 それでは。 |
▼ぴぎゃ!!(反省中) さん、こんにちは。 >>一回目のソートが残らず >すみません、この部分が理解できませんでした。 こちらこそ、言葉たらずで済みません >・No1802の表 > A B C D E > a 1 11 201 15 > a 3 17 205 26 > b 1 11 201 51 > a 2 12 202 62 > b 2 11 206 52 > >・1回目[最優先:D列, 2番目:E列](条件は3つまでなのでまず第4・第5条件で並べ替え) > A B C D E > a 1 11 201 15 > b 1 11 201 51 > a 2 12 202 62 > a 3 17 205 26 > b 2 11 206 52 > >・2回目[最優先:A列, 2番目:B列, 3番目:C列](第1〜第3条件で並べ替え) > A B C D E > a 1 11 201 15 > a 2 12 202 62 > a 3 17 205 26 > b 1 11 201 51 > b 2 11 206 52 上記の結果になるようにしたかったんですが当方のソートの選び順が悪かったみたいです。組みなおします。 >条件は3つまでですので、上記のとおり2回ソートを行っているのですが… >1回目の結果が異なる、ということでしょうか? >それと、並べ替えにSelectは不要ですので(頭使ってないのが…)、 > >Range("A1:E6").Select >With Selection >↓ >With Range("A1:E6") > >に変更してください。 心遣いありがとうございます。変数使用してRangeにて組んでます。 > >当方もExcel2000(9.0.6926 SP-3)です。 > >それでは。 |