エクセルで表を作成すれば、データの並べ替え作業はよく行う事ですね。
少しでも作業効率化の為に、毎回ツールバーにある「データ」から並べ替えを選び、優先項目を選択してから並べ替えるなんて面倒だと思いませんか?
表のシートを開いたら自動的に並べ替え完了させよう!
Sortメソッドを使用して順位を並べ替える
「Key」で並べ替え優先順位を表します
- Key1・・・最優先
- Key2・・・2番目に優先
- Key3・・・3番目に優先
「Order」で大きい順(降順)、小さい順(昇順)を表します
- Order1・・・Key1で指定した列を並べ替える
- Order2・・・Key2で指定した列を並べ替える
- Order3・・・Key3で指定した列を並べ替える
※降順は「xlDescending」、昇順は「xlAscending」
ワークシート上のツールバーからの並べ替えは4つ以上の条件でも並べ替え可能ですが、VBAコードでは3つの条件までで、4つ目にKey4とやってもマクロエラーになります。
4つ以上の条件でも並べ替えをVBAコードでやる方法
それでは、下記の表を参照しながら並べ替えしましょう。

ここでは、ユーザーフォームに配置したコマンドボタンを押すことで、並びべ替えが行われ、並べ替えの最優先は「POINT」(E列)、2番目の優先は「AVE」(L列)、3番目の優先は「累計」(J列)で行い、全て大きい順(降順)で並べ替えます。
Private Sub CommandButton1_Click()
Range(“B3:M17”).Sort Key1:=Range(“E2”), Order1:=xlDescending, Key2:=Range(“L2”), Order2:=xlDescending, Key3:=Range(“J2”), Order3:=xlDescending
End Sub
- コマンドボタン1がクリックされたら
- セルB3~M17の範囲で並べ替えを実行し、最優先はE2の列で降順、2番目の優先はL2の列で降順、
- 3番目の優先はJ2の列で降順とする
- マクロ記録終了
これで、3つの条件をクリアした並べ替えが完了します。
自動的にシートを開いたら並べ替えさせる方法
決して難しくはなく、たった1行追加するだけででき、移動したいシート「sheet1」の移動を指示するVBAコード「 Sheets(“sheet1”).Select 」を付け足すだけです。
Private Sub CommandButton1_Click()
Sheets(“sheet1”).Select
Range(“B3:M17”).Sort Key1:=Range(“E2”), Order1:=xlDescending, Key2:=Range(“L2”), Order2:=xlDescending, Key3:=Range(“J2”), Order3:=xlDescending
End Sub

Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!