Vba: 複数の列でシートを並べ替える方法
VBA を使用して Excel シートを複数の列で並べ替えるには、次の基本構文を使用できます。
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
この特定の例では、範囲A1:B11のセルを、まず列 A の値で昇順に並べ替え、次に列 B の値で降順に並べ替えます。
Header:=xlYesは、最初の行をヘッダー行として扱うことを指定していることに注意してください。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用して Excel シートを複数の列で並べ替える
さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。
次の方法でデータセットを並べ替えたいとします。
- まず、 [チーム]列の値を昇順 (A から Z) に並べ替えます。
- 次に、 [ポイント]列の値を降順 (最大から最小) に並べ替えます。
これを行うには、次のマクロを作成できます。
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
このマクロを実行すると、次の出力が表示されます。
行はチーム名によって昇順に、ポイントによって降順に並べ替えられるようになりました。
注 #1 : この例では、2 つの列でソートしました。ただし、必要な数のキーを指定して、さらに多くの列を並べ替えることもできます。
注 #2 : VBA の並べ替えメソッドの完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: AVERAGEIF 関数と AVERAGEIFS 関数の書き方
VBA: SUMIF 関数と SUMIFS 関数の書き方
VBA: COUNTIF 関数と COUNTIFS 関数の書き方