PR

【Excel VBA】オートフィルタでデータの並び替え(ソート)を行う方法/複数条件で並び替え

エクセルVBA-オートフィルタでデータを並び替える方法-アイキャッチ VBA

エクセルのオートフィルタを使用してデータを並び替え(ソート)する方法についてご紹介します。

スポンサーリンク

オートフィルタでデータを並び替え(ソート)

オートフィルタで表のデータの並び替えを行うときの書き方です。
例としてC列の販売数の数値を昇順(小さい順)で並び替えてみます。

'<C列の販売数で並び替え 昇順>
  Range("A1").Sort key1:=Range("C1"), order1:=xlAscending, Header:=xlYes

▽実行するとこうなります

コードを分解して説明します。

Range(“A1”).Sort  ソートする対象の表範囲を指定しています。
key1:=Range(“C1”),  並び替えを行いたい列を指定します。今回はC列のためC1セル。
order1:=xlAscending,  昇順(数字の小さい順)で並び替える場合は「xlAscending
降順(数字の大きい順)で並び替える場合は「xlDescending
Header:=xlYes ヘッダーを含む場合は「xlYes
ヘッダーを含まない場合は「xlNo

降順で並び変えるときの例:「order1」に「xlDescending」を指定します。

'<C列の販売数で並び替え 降順>
  Range("A1").Sort key1:=Range("C1"), order1:=xlDescending, Header:=xlYes

複数の列で同時に並び替えを行いたい場合は優先順位をつけて3つまで指定可能です。

▽複数条件の書き方の例
 1つ目の条件:A列の分類を昇順で並び替え
 2つ目の条件:C列の販売数を降順で並び替え
 ヘッダー使用:あり

'<並び替え 複数条件>
  Range("A1").Sort key1:=Range("A1"), order1:=xlAscending, key2:=Range("C1"), order2:=xlDescending, Header:=xlYes
スポンサーリンク

オートフィルタの関連記事

オートフィルタの操作についてはボリュームが多いため、記事を分けて掲載しています。

オートフィルタを使って絞込みを行う方法について↓

オートフィルタで絞り込んだデータの操作について↓

オートフィルタが設定されているか判定・フィルタの解除・すべて選択する方法について↓

スポンサーリンク

※コードのコピー利用について

・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。

タイトルとURLをコピーしました