下記のようなソートを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時からパソコンに向かい、結局こんな時間になってしまいました。。。
お時間ありましたら、どなたか教えていただけないでしょうか?
No.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のところが通常と違うのかな。
朝時間がなく急いでいるので、勘違いしていたらすみません。
朝早くから回答ありがとうございます。
エクセル操作でできたんですよね。知りませんでしたーー。。
エクセルでは、列を基準に入れ替えることしかできないと思っていたため、行列の入れ替えをしてソートそして行列の入れ替えで元にもどす、という操作をしていました。
僕が学ぶことは、VBAよりもまずエクセルだということに気づかされました。
ありがとうございました!
No.2
- 回答日時:
おはようございます
2回並べ替えるのではなく、
条件を2つにすればよいのではないでしょうか。
Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B2"), Order2:=xlAscending
仮に1行目を第一の条件としました。
おはようございます!
朝早くから回答ありがとうございます。
条件を二つにできるのですね。発展させる手がかりがつかめました。
ありがとうございました!
No.1
- 回答日時:
こんにちは
初めて使ったので不必要なソースがあるかもしれませんが・・・
並び替えられたので書きますね(^^)
数値は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 …
朝早くから回答ありがとうございます。
ソートの使い方の基礎がわかりました。
素人ながらにVBAで記述してこうとしたら、間違いにつぐ間違いでかなりまいっていたので助かりました!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- その他(プログラミング・Web制作) sortの優先キーについて(スプレッドシート) 1 2023/01/17 17:59
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- Excel(エクセル) Excel 効率的な名簿と得点の管理の仕方 8 2022/08/07 08:15
- Excel(エクセル) エクセルVBA オートフィルタでの絞り込みと並び替えについて 1 2023/07/08 13:08
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
並べ替えについて
-
レコードの登録順がおかしい
-
ファイルの漢数字の順番につい...
-
コンボボックスのソートについて
-
1の行を固定した上でVBAを用い...
-
エクセル、並び替え正しくソー...
-
月末日のみソートしたい
-
文字型の順番がうまく並ばない。
-
テーブルレーコードをソートし...
-
SQLで曜日のソートを月火水木金...
-
アクセスに関して。クエリの並...
-
マクロ 昇順のマクロを追加したい
-
Selectした時のレコードの取得順
-
マクロでソートをかけるときに...
-
MySQLで行番号を得たい
-
ソートのアルゴリズム等はいつ...
-
エクセルデーターの並び替え
-
エクセルVBAでデータ並べ替え
-
Oracleのソート
-
accessでDISTINCT 句と矛盾
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードの登録順がおかしい
-
エクセル、並び替え正しくソー...
-
並べ替えについて
-
1の行を固定した上でVBAを用い...
-
ファイルの漢数字の順番につい...
-
エクセルのソートについて
-
テーブルレーコードをソートし...
-
上から何番目か。
-
SQLで曜日のソートを月火水木金...
-
リストボックス内を昇順並べる方法
-
Selectした時のレコードの取得順
-
アクセスに関して。クエリの並...
-
コンボボックスのソートについて
-
accessでDISTINCT 句と矛盾
-
エクセルでダブルクリックして...
-
数字と漢字が混じった日付デー...
-
Excelの並び替え(文字数と画数...
-
都道府県順、北からソートした...
-
月末日のみソートしたい
-
エクセルの縦列のソートできま...
おすすめ情報