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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
- その他(プログラミング・Web制作) sortの優先キーについて(スプレッドシート) 1 2023/01/17 17:59
- Excel(エクセル) エクセルVBA オートフィルタでの絞り込みと並び替えについて 1 2023/07/08 13:08
- Excel(エクセル) エクセルでの色付け 5 2022/10/09 18:58
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Visual Basic(VBA) 正規表現を用いての並び替え 7 2022/04/04 09:27
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Excelで複数列かつ複数行分の一括並べ替えについて教えてください
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
-
4
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
5
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
6
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
7
Excel VBAにてソートが上手くいかない
その他(Microsoft Office)
-
8
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
エクセルの散布図のX軸に文字を表示したいのですが、どうしたらよいのでしょうか?
Excel(エクセル)
-
12
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
13
excel VBA de で、昇順で列ごと入れ換える方法がわかりません。
Excel(エクセル)
-
14
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
15
Excel マクロ:変数を複数使う場合
Excel(エクセル)
-
16
【Excel VBA】複数範囲の並べ替えは可能でしょうか?
Excel(エクセル)
-
17
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
-
18
エクセル 複数列の入れ替えについて
Excel(エクセル)
-
19
VBA エラーと対策
Excel(エクセル)
-
20
VBA ソートすると、1、11、2,3になって・・
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
リスト構造のソートで悩んでま...
-
昇順ソート
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
C言語・要素除去
-
比較回数が少なくなるソート
-
C# DataTableの行をソートしてD...
-
自己参照型構造体とソート
-
int num[10]という配列に、適当...
-
構造体配列のソート
-
配列の中身を入れ替える方法を...
-
vbでDataTableの抽出コピー
-
C言語でアナグラムを求めるプロ...
-
IPアドレスのSORTについて
-
excel VBA の条件をつけての列...
-
ファイル名「1.jpg ~10.jpg~...
-
DataGridViewソート時に先頭行...
-
構造体配列の並べ替え
-
C++ 入力した3つのint型の整数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C言語・要素除去
-
C# DataGridView のヘッダーセ...
-
Excelですべての組合せ(重複組...
-
VBA基本構文の作り方 2列の...
-
なぜ?counterintuitive
-
ファイル名「1.jpg ~10.jpg~...
-
リスト構造のソートで悩んでま...
-
配列の問題
-
C# DataTableの行をソートしてD...
-
あるディレクトリ内のファイル...
-
excel VBA の条件をつけての列...
-
10個の整数を入力して小さい順...
-
文字列をソートする方法
-
excel VBA リストビューの行...
-
DataGridViewの複数列を連動し...
-
2次元配列を複数項目でソートし...
-
csvファイル内にてソートす...
-
n番目に大きい数を求めるアル...
おすすめ情報