No.2
- 回答日時:
おはようございます。
方法は、いくつかありますが、Small関数を使い昇順に、、
Small関数で小さい順に配列に入れてます。
配列の値をセル範囲に書き出します。
サンプルのセル範囲はご質問の4×4の範囲(A2:D5)です。
汎用性は劣りますが、参考になれば、、
Sub Sample()
Dim i As Long, j As Long
Dim TmpArr(3, 3) As Variant
For i = 0 To 3
For j = 0 To 3
TmpArr(i, j) = WorksheetFunction.Small(Range(Cells(i + 2, 1), Cells(i + 2, 4)), j + 1)
Next
Next
Range(Cells(2, 1), Cells(5, 4)) = TmpArr()
End Sub
配列の3は、0から始まる為です。
No.3
- 回答日時:
No2の人のやり方が正解ですが…
でもマクロって組んだらあとずっとメンテナスをしなければなりません。
たとえば1列増えたり減ったりするだけでプログラムを修正する必要があります。
プログラムって属人的になりがちなのですよ。
部局が異動しても、修正する必要がでてくれば、当然のように要求されます。
「貴方がつくったのだから、貴方が修正するのが当然」という人もいるんですよ。
ひどいときには退職したあとに連絡がきたことがあります。
ですので、プログラムをつくるにしても、開発タブのマクロ記録でされる方がよいかと思うのですが。
No.4
- 回答日時:
もっとシンプルに以下はいかがですか?
Sub Sample()
Range("A1:D4").Sort _
Key1:=Range("D1"), Order1:=xlAscending, _
Key2:=Range("C1"), Order2:=xlAscending, _
Key3:=Range("B1"), Order3:=xlAscending, _
Header:=xlNo
Range("A1:D4").Sort _
Key1:=Range("A1")
End Sub
No.6ベストアンサー
- 回答日時:
こんにちは!
横からお邪魔します。
単純に手作業で出来そうですが、VBAでの方法をご希望だというコトなので
一例です。
元データはA~D列にあり、1行目の項目は入力済みだとします。
並び替えのキーはA・B列の二つだけで良いのですね。
Sub Sample1()
Range("A:D").Sort key1:=Range("A1"), order1:=xlAscending, _
key2:=Range("B1"), order1:=xlAscending, Header:=xlYes
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.7
- 回答日時:
No.4 の訂正です
「タイトル行があるので元データは2行目からです。」を見逃していました。申し訳ございません。
Sub Sample()
Range("A1:D5").Sort _
Key1:=Range("D1"), Order1:=xlAscending, _
Key2:=Range("C1"), Order2:=xlAscending, _
Key3:=Range("B1"), Order3:=xlAscending, _
Header:=xlYes
Range("A1:D5").Sort _
Key1:=Range("A1")
End Sub
No.8
- 回答日時:
No.4 No.7 の訂正
なんととんでもない実験用のコードを載せていたことに気づきました。本当に申し訳ございません。
判っているとは思いますが以下が正解です。
Sub Sample()
Range("A1:D5").Sort _
Key1:=Range("B2"), Order1:=xlAscending, _
Key2:=Range("C2"), Order2:=xlAscending, _
Key3:=Range("D2"), Order3:=xlAscending, _
Header:=xlYes
Range("A1:D5").Sort _
Key1:=Range("A1")
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) Excelでの並べ替えについて 5 2022/11/26 22:18
- Excel(エクセル) 範囲指定をした中で、住所の列をユーザー設定の並べ替えをしたい 3 2022/05/15 13:51
- Excel(エクセル) Excelの並び替え(先頭の文字以外を基準に並び替えたい) 3 2023/07/07 22:21
- Visual Basic(VBA) Excelで横書き50行の漢字テストデータを縦書きのテスト問題にしたい。 6 2022/04/27 15:03
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) DATEDIFで作成した勤務年数の並べ替えがうまくいかない 3 2023/07/31 17:09
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
excelのデータで色つき行の抽出...
-
エクセルで特定の文字列が入っ...
-
【Excel関数】UNIQUE関数で"0"...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセル 上下で列幅を変えるには
-
アクティブになっている行をマ...
-
特定の文字がある行以外を削除...
-
AのセルとB行を比較して、一致...
-
Excel グラフのプロットからデ...
-
EXCELで最後の行を固定
-
セルの色によって条件文をつけ...
-
エクセル マクロ等を利用した各...
-
Excel2007で、指定範囲の行高さ...
-
エクセル マクロで数値が変っ...
-
Excelマクロ 期間を指定してデ...
-
貼り付けた数式を最終行まで繰...
-
Excel VBA アクティブセルから...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の文字列が入っ...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
[EXCEL]ボタン押す→時刻が表に...
-
結合されたセルをプルダウンの...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 上下で列幅を変えるには
-
Excel ウインドウ枠の固定をす...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
エクセル2016で時間を入力して...
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
エクセルVBA 最終行を選んで並...
-
VBAで色の付いているセルの行削除
-
エクセルマクロで偶数行(又は...
-
エクセルのセルに指定画像(.jpg...
-
罫線の斜線を自動で引くマクロ
おすすめ情報
わかりずらくてすいません。
再度質問しなおしますと
1 4 5 6 13510
3 6 7 8 1 4 5 6
1 3 510 ⇒ 2 3 4 9
2 3 4 9 3 6 78
と並び変えたいのです。
よろしくお願いいたします。