スポンサーリンク

シートの移動と同時に表のデータの並べ替え

VBAデータsort1 Excel-VBA

エクセルで表を作成すれば、データの並べ替え作業はよく行う事ですね。

少しでも作業効率化の為に、毎回ツールバーにある「データ」から並べ替えを選び、優先項目を選択してから並べ替えるなんて面倒だと思いませんか?

波乗りアヒル
波乗りアヒル

表のシートを開いたら自動的に並べ替え完了させよう!

Sortメソッドを使用して順位を並べ替える

Sortメソッドの基本

「Key」で並べ替え優先順位を表します

  • Key1・・・最優先
  • Key2・・・2番目に優先
  • Key3・・・3番目に優先

「Order」で大きい順(降順)、小さい順(昇順)を表します

  • Order1・・・Key1で指定した列を並べ替える
  • Order2・・・Key2で指定した列を並べ替える
  • Order3・・・Key3で指定した列を並べ替える

※降順は「xlDescending」、昇順は「xlAscending」

波乗りアヒル
波乗りアヒル

ワークシート上のツールバーからの並べ替えは4つ以上の条件でも並べ替え可能ですが、VBAコードでは3つの条件までで、4つ目にKey4とやってもマクロエラーになります。

4つ以上の条件でも並べ替えをVBAコードでやる方法

それでは、下記の表を参照しながら並べ替えしましょう。

value関数

ここでは、ユーザーフォームに配置したコマンドボタンを押すことで、並びべ替えが行われ、並べ替えの最優先は「POINT」(E列)、2番目の優先は「AVE」(L列)、3番目の優先は「累計」(J列)で行い、全て大きい順(降順)で並べ替えます。

VBAコード

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. コマンドボタン1がクリックされたら
  2. セルB3~M17の範囲で並べ替えを実行し、最優先はE2の列で降順、2番目の優先はL2の列で降順、
  3. 3番目の優先はJ2の列で降順とする
  4. マクロ記録終了

これで、3つの条件をクリアした並べ替えが完了します。

自動的にシートを開いたら並べ替えさせる方法

決して難しくはなく、たった1行追加するだけででき、移動したいシート「sheet1」の移動を指示するVBAコード「 Sheets(“sheet1”).Select 」を付け足すだけです。

VBAコード

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もくじへ

コメント