成績表やデータ表などに付き物の並べ替え作業って地味に面倒だと思ったことありませんか?
優先順位をつけて並べ替える時に、同時にエクセルシートも切替出来たら作業が1秒で終わる方法をご紹介します。
シート移動して並べ替え
VBA並べ替えの基本
「Key」で並べ替え優先順位を表します
- Key1・・・最優先
- Key2・・・2番目に優先
- Key3・・・3番目に優先
「Order」で大きい順(降順)、小さい順(昇順)を表します
- Order1・・・Key1で指定した列を並べ替える
- Order2・・・Key2で指定した列を並べ替える
- Order3・・・Key3で指定した列を並べ替える
波乗りアヒル※降順は「xlDescending」、昇順は「xlAscending」
4つ以上の並べ替えはVBAではできませんが、どうしてもやりたい方は下記方法ならば、できますよ!
あわせて読みたい




Key4は使えないけど4つ以上項目の並べ替えをVBAコードでやる方法
エクセルVBAを使ってデータの並べ替えを行うのにSortメソッドを使うのですが、4つ目の条件までの並べ替えををVBAコードを使ってやってみたら、エラーになった経験あり…
下の図はサッカーっぽい成績表なのですが、順位を決めるのに勝ち点を最優先にしますが、同点の場合更に条件がありますがここでは省略します。


VBAコード
Private Sub CommandButton1_Click()
Range(“B2:G23”).Sort Key1:=Range(“D3”), Order1:=xlDescending
End Sub
解説
- コマンドボタン1がクリックされたら
- B2~G23の表の範囲でセルD3(勝ち点)が多い順(降順)に並べ替える
- マクロ記録終了
これで、勝ち点が多い順に並べ替えられます。
そして今回はシートも移動してから並べ替えを行うので、移動先のシート名を「成績表」という名前とします。
VBAコード
Private Sub CommandButton1_Click()
Sheets(“成績表”).Select
Range(“B2:G23”).Sort Key1:=Range(“D3”), Order1:=xlDescending
End Sub



並べ替えの前にシート選択を1行追加するだけで完成です。
関連記事
-
データの操作


エクセルVBAで不要な行や列を非表示ができない時の対処方法と順番確認
データ抽出などで不要な行や列を自動的に非表示にできるExvel-VBAのHiddenプロパティですが、コードは正しく書かれているのにコマンドボタンを押すとエラーになったこと… -
データの操作


エクセルVBAで指定範囲内のセルの値「0」を全て空欄に置き換える方法
エクセルで表を扱う時に数式エラーを防ぐ為に、空欄の代わりにIFERROR関数などで数字の「0」で代用していることありませんか? この代用している値を一瞬で空欄にできる… -
データの操作


Key4は使えないけど4つ以上項目の並べ替えをVBAコードでやる方法
エクセルVBAを使ってデータの並べ替えを行うのにSortメソッドを使うのですが、4つ目の条件までの並べ替えををVBAコードを使ってやってみたら、エラーになった経験あり… -
データの操作


エクセルVBAでシートの移動と同時に表のデータの並べ替えをする
成績表やデータ表などに付き物の並べ替え作業って地味に面倒だと思ったことありませんか? 優先順位をつけて並べ替える時に、同時にエクセルシートも切替出来たら作業が… -
データの操作


エクセルVBAで氏名・名前を姓と名で自動的に分割する簡単な方法
エクセルで表などを作成していると、並べ替えや振り分けなどのデータ処理が面倒だと思ったことはありませんか? データ処理に手間をかけていると仕事の作業効率が悪くな… -
ラベル


VLOOKUPをVBAラベルを活用してデータ検索・修正をする方法
ラベル(Label)にVBAコードを記述する ボウリング成績表でも使っているユーザーフォームに配置した文字を表示するための「ラベル(Label)」にも、実はVBAコードを記述… -
データの操作


エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
セルの操作


エクセルVBAで複数セルを一括で結合・解除を繰り返し処理する方法
エクセルの表を印刷するには見栄えの為にセルの結合を行ったら、並べ替えをするとエラーになって困ったことありませんか? Mergeメソッドを書き加えれば、自動的にセル…







