「これはヤバかったな」という遅刻エピソード

はじめて質問します。
エクセルのマクロで20列40行に数字があるのですが、
この20列を優先順位をつけて並べ替えたいのですが、
4番目以降の優先順位をつけることはできないのでしょうか?
3番目までは問題ないのですが、
Key4:=Range("AA2"), Order4:=xlAscending, Key5:=Range("Z2"), Order5:=xlAscending, _
key4:=のところで「名前付き引数が見つかりません」
となってしまいます。

3つまでしか順位付けできないのでしょうか?

A 回答 (4件)

ソートする列の値を結合したキー列を作成すればできます。

    • good
    • 0
この回答へのお礼

ありがとうございます。
おっしゃる通り、CONCATENATEを利用して、全てのセルの値を結合したものを作成して並べ替えたらうまくいきました。
大変参考になりました。

お礼日時:2006/05/29 23:07

・Excelブックは保存済みである


・ソート結果は、データとして内部で取得するだけで、シートに反映する必要がない
・シートの一部分だけにソートを行うのではない

という条件の下なら、JETドライバ+ADOを利用した方法で、一発でソートも可能です。
取得結果はRecordSetで得ることが可能です。

先に述べた条件に合わなければ、#1のagricapさんが述べておられるように、Excelの仕様をうまく利用し、複数回のソートを行うしかないと思います。
    • good
    • 0

#1です。


おっしゃる通りです。20個でも同様にできます。
エクセル云々の話ではなく、一般的な話です。
理屈で考えてみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
うまくいきました。助かりました。

お礼日時:2006/05/29 23:03

ヘルプをみましたが、どうも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回並べ替えをすればよろしいのでしょうか?

補足日時:2006/05/29 21:27
    • good
    • 0

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