
excel VBA を最近学び始めたのですが、
ソートで、
4 8 3 1 7 8 8
2 8 9 6 2 5 1
↓
1 3 4 7 8 8 8
6 9 2 2 8 5 1
↓
1 3 4 7 8 8 8
6 9 2 2 1 5 8
と並び替えるソートのVBAがわかりません。一回目のソートで1行目を基準に列ごと昇順?に並び替え、二回目のソートで1行目の昇順を満たしながら二行目の数字を基準に列ごと昇順にソートしたいのです。
検索をかけて、バブルソートのVBAなどを見てみましたが、難しくて理解できません。(この前こそ、「かんたんプログラミング EXCEL VBA」を読んだ知識レベルです。)
昨日の18時からがんばっているのですが、一向にわからないです。。
お時間ありましたら、どなたか教えていただけないでしょうか?

No.3ベストアンサー
- 回答日時:
エクセルの並び替えのメニューを選んで、左下(だと思います)
「オプション」ってあります。これを開いて、2番目かしらの
「方向」を列単位にします。「OK」で戻ると、第1候補、第2候補等が
行で指定できるように変わります。
ここで、第1優先=1行、第2優先=2行 とします。
これで、貴兄の期待するとおりの結果が得られます。
参考までに、VBAのコードは、
Sub Macro1()
Columns("A:G").Sort _
Key1:=Range("A1"), Order1:=xlAscending, _
Key2:=Range("A2"), Order2:=xlAscending, _
Orientation:=xlLeftToRight
End Sub
尚、マクロの記録を実施して、上記のマクロとの比較をしてみてください。
Sub Macro1()
Columns("A:G").Sort _
Key1:=Rows("1"), Order1:=xlAscending, _
Key2:=Rows("2"), Order2:=xlAscending, _
Orientation:=xlLeftToRight
End Sub
でも、おなじです。sortの単語をハイライトさせて、F1を押して、Helpを
呼んで見てください。
お礼が遅くなりました。すみません。
おかげで、ソートの方法がわかりました。
また、最近大分VBAがわかるようになってきました。
ありがとうございました。
No.2
- 回答日時:
こんにちは。
>excel VBA を最近学び始めたのですが、
>「かんたんプログラミング EXCEL VBA」を読んだ知識レベルです。
三部の全部読みましたか?
並べ替えアルゴリズムですが、BubbleSort は、古典的なアルゴリズムですが、Excelでは、あまり使われません。そのアルゴリズムを使うTPOというのは、Excel VBAでは、非常に限られています。
その理由は、[並べ替え(Sort)]機能が、Excelでは備わっていますので、必要ないのです。
では、BubbleSort アルゴリズムが分かるレベルというと、だいたい、Excel VBAが1年以上経ったレベルというか、ここのカテゴリでしたら、回答者としてVBAの質問の7~8割ぐらいは解けるレベルではないかと思います。逆にいうと、VBA専門掲示板などを覗いていると1年に1度ぐらいは、Excel VBAでは、この場違い(?)のアルゴリズムが出てきますので、それで覚えるようなものです。
No.1
- 回答日時:
1行のソートは理解できているのでしょうか?
できているならば上段と下段を足す(上段*10+下段)ことで
いっぺんにソートできると思いますが。
ソートしたいのか勉強したいのかどっちでしょうね。
勉強ならば自分で解析したほうがよいと思うし。
全文はのせませんでした。
参考URL:http://www5d.biglobe.ne.jp/~tomoya03/shtml/algor …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
C言語・要素除去
-
VBA基本構文の作り方 2列の...
-
昇順ソート
-
datagridviewの並べ替え
-
DataGridViewの複数列を連動し...
-
n番目に大きい数を求めるアル...
-
サイトで価格順で表示するなど...
-
Double型ソート方法
-
C#のリストボックスで、クリッ...
-
mysqlで日本語の並び替え
-
Fortran77で多次元配列を並び替...
-
excel VBA の条件をつけての列...
-
C言語でアナグラムを求めるプロ...
-
EXCEL VBAのソートについて
-
クイックソートしながら重複要...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C# DataTableの行をソートしてD...
-
C言語・要素除去
-
配列の問題
-
VBA基本構文の作り方 2列の...
-
あるディレクトリ内のファイル...
-
Excelですべての組合せ(重複組...
-
n番目に大きい数を求めるアル...
-
2次元配列を複数項目でソートし...
-
ファイル名「1.jpg ~10.jpg~...
-
クイックソートしながら重複要...
-
C# ArrayListを二次元配列のよ...
-
csvファイル内にてソートす...
-
C言語について
-
昇順ソート
-
int num[10]という配列に、適当...
-
EXCEL VBAのソートについて
-
excel VBA の条件をつけての列...
おすすめ情報