推しミネラルウォーターはありますか?

EXCEL2000 複数行のソート方法について教えて下さい。

EXCELのVBA(マクロ)にて、シート上の複数行をソートしたいと考えています。

エクセル上では、3つの行に対してソートができるのは知っています。
その操作をマクロに記録して、そのVBAを変更して5つの行に対して
ソートを一括で行おうとしたのですが、エラーとなってしまいました。。。

以下が記録したVBAです
===================================================================
Selection.Sort Key1:=Range("C15"), order1:=xlAscending, _
key2:=Range("G15"), order2:=xlAscending, key3:=Range("h15"), order3:=xlAscending, _
header:=xlGuess, ordercustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom, sortmethod:=xlPinYin
===================================================================

このVBAを変更して3つ以上の行に対して一括でソートは出来るでしょうか?
この方法ではやはり無理でしょうか?

VBAを2つに分けてやる方法は最後の策だと考えています。
それ以前に2つに分けて出来るのか分からないのですが。。。

知恵をかして下さい。宜しくお願い致します。

A 回答 (2件)

下記のURLをご覧ください。


参考になりますでしょうか?

参考URL:http://t_shun.tripod.co.jp/My_Page/Excel-VBA/vba …
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/02/23 19:37

sortは単純にはソートのアルゴリズムの1つを中心に使えば出来ます。

教科書などに載っている有名なアルゴリズムには、元の順序を保存する(同一キーがあるとき、その中でソート前の順序が保たれている)ものと、崩れるものとあります。しかし、商用のものは、スピードを重視するとかのため、アルゴリズムを複合して使ったり、修正しているものはどちらかわからないものが通例でしょう。その点を、はっきり書いてないソートのユティリティソフトも多いと思います。
具体的にエクセルでは、保存されるタイプと書いてあったような気がしますから、まず下位キー2つでソートし、結果を上位3キーでソートして見てください。
即ちソートメソッドのブロックを2つ前後に並べて書けば良いと思います。下位キーを先にするのですよ。
それで5つのキーでソートするのと同じ結果になると思われます。
適当なテストデータを作る暇がなくて、私は実際にやれませんが、お手許の本番データをコピーしてやって見て、上手く行くかダメかご報告を頂ければ、後学のためありがたいです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/02/23 19:36

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