アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記のようなソートをVBAで行いたいのですがわかりません。

5 6 3 8 5 5
8 4 6 1 1 5
    
    ↓

3 5 5 5 6 8
6 8 1 5 4 1

    ↓

3 5 5 5 6 8
6 1 5 8 4 1

一回目のソートで、1行目を基準に列ごと昇順に入れ換え、二回目のソートで一回目の条件を満たしたまま二行目を基準に列ごとソートしたいのです。
最近VBAを勉強し始め、「かんたんプログラミング EXCEL VBA」という書籍を読んだ知識レベルのため、自分で検索してソートの方法を学んでもわかりません。今日は、18時からパソコンに向かい、結局こんな時間になってしまいました。。。
お時間ありましたら、どなたか教えていただけないでしょうか?

A 回答 (3件)

これはエクセル(手)操作でできるようなので、簡単だと思います。


マクロの記録をとるだけ。
全データ範囲指定し
データー並べ替えー オプションー列単位ーOK
ソートキー第1 行1
ソートキー第2 行2
これで
355568
615841
のようになりました。
Range("A1:F2").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("A2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlLeftToRight, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal
Orientation:=xlLeftToRightのところが通常と違うのかな。
朝時間がなく急いでいるので、勘違いしていたらすみません。
    • good
    • 0
この回答へのお礼

朝早くから回答ありがとうございます。
エクセル操作でできたんですよね。知りませんでしたーー。。
エクセルでは、列を基準に入れ替えることしかできないと思っていたため、行列の入れ替えをしてソートそして行列の入れ替えで元にもどす、という操作をしていました。
僕が学ぶことは、VBAよりもまずエクセルだということに気づかされました。
ありがとうございました!

お礼日時:2007/02/26 11:47

おはようございます


2回並べ替えるのではなく、
条件を2つにすればよいのではないでしょうか。
Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B2"), Order2:=xlAscending

仮に1行目を第一の条件としました。
    • good
    • 0
この回答へのお礼

おはようございます!
朝早くから回答ありがとうございます。
条件を二つにできるのですね。発展させる手がかりがつかめました。
ありがとうございました!

お礼日時:2007/02/26 11:40

こんにちは


初めて使ったので不必要なソースがあるかもしれませんが・・・
並び替えられたので書きますね(^^)
数値はA1からF2の間にあるものとします
並べ替えの順が1回目と2回目が逆になってますけど(滝汗)

Sub sort1()
Range("A1:F2").Sort _
Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlLeftToRight, _
SortMethod:=xlPinYin, _
DataOption1:=xlSortTextAsNumbers

Range("A1:F2").Sort _
Key1:=Range("A1"), _
Order1:=xlAscending, _
Header:=xlGuess, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlLeftToRight, _
SortMethod:=xlPinYin, _
DataOption1:=xlSortTextAsNumbers
End Sub

上の部分で2行目を昇順に並び替え、下の部分で1行目を昇順に並び替えてます

参考URL:http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
    • good
    • 0
この回答へのお礼

朝早くから回答ありがとうございます。
ソートの使い方の基礎がわかりました。
素人ながらにVBAで記述してこうとしたら、間違いにつぐ間違いでかなりまいっていたので助かりました!
ありがとうございました!

お礼日時:2007/02/26 11:38

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