- ベストアンサー
4番目以降の並べ替え
はじめて質問します。 エクセルのマクロで20列40行に数字があるのですが、 この20列を優先順位をつけて並べ替えたいのですが、 4番目以降の優先順位をつけることはできないのでしょうか? 3番目までは問題ないのですが、 Key4:=Range("AA2"), Order4:=xlAscending, Key5:=Range("Z2"), Order5:=xlAscending, _ key4:=のところで「名前付き引数が見つかりません」 となってしまいます。 3つまでしか順位付けできないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ソートする列の値を結合したキー列を作成すればできます。
その他の回答 (3)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
・Excelブックは保存済みである ・ソート結果は、データとして内部で取得するだけで、シートに反映する必要がない ・シートの一部分だけにソートを行うのではない という条件の下なら、JETドライバ+ADOを利用した方法で、一発でソートも可能です。 取得結果はRecordSetで得ることが可能です。 先に述べた条件に合わなければ、#1のagricapさんが述べておられるように、Excelの仕様をうまく利用し、複数回のソートを行うしかないと思います。
- agricap
- ベストアンサー率40% (79/195)
#1です。 おっしゃる通りです。20個でも同様にできます。 エクセル云々の話ではなく、一般的な話です。 理屈で考えてみて下さい。
お礼
ありがとうございました。 うまくいきました。助かりました。
- agricap
- ベストアンサー率40% (79/195)
ヘルプをみましたが、どうも3つまでしかできないようです。 代わりに、 (1)4番目と5番目のキーだけでソートする (2)その結果を、1番目と2番目と3番目のキーでソートする とすれば同じ結果になります。
補足
ということは、 優先順位1から20まである場合、 (1)18番目、19番目、20番目 (2)15番目、16番目、17番目 (3)12番目、13番目、14番目 (4)9番目、10番目、11番目 (5)6番目、7番目、8番目 (6)3番目、4番目、5番目 (7)1番目、2番目 で7回並べ替えをすればよろしいのでしょうか?
お礼
ありがとうございます。 おっしゃる通り、CONCATENATEを利用して、全てのセルの値を結合したものを作成して並べ替えたらうまくいきました。 大変参考になりました。