Excel VBAでデータのソート(並べ替え)を行う:Sortの使い方

並べ替えの機能は、通常でもよく使いますがこれをVBAで行う方法を掲載します。



Homeに戻る > Excel セルのTipsへ

手動でリボンを使い並べ替えを行うのは設定も多く大変ですが、VBAを作成しておけば簡単にできます。

VBAで実行するには、Sortメソッドを使います。

Sortメソッドは、昇順・降順や大文字・小文字の区別など細かな設定が可能です。

構文の詳細については、下記に記載していますので参照してください。

関連する「ソートの方法」も掲載していますので、参考にしてください。



Sortメソッドの構文

ActiveSheet.Range("B2:G100").Sort Key1:=Range("C1") _
        , Order1:=xlAscending _
        , Header:=xlGuess _
        , MatchCase:=False _
        , Orientation:=xlTopToBottom _
        , SortMethod:=xlPinYin
  • Key1 (省略可能)
     並べ替える列
  • Order1 (省略可能)
     xlAscending 昇順
     xlDescending 降順
  • Header (省略可能)
     xlGuess 先頭行をタイトル行か自動判定
     xlNo 先頭行をタイトル行と見なさない
     xlYes 先頭行をタイトル行と見なす
  • MatchCase (省略可能)
     True 大文字・小文字を区別する
     False 大文字・小文字を区別しない
  • Orientation (省略可能)
     xlTopToBottom 行の並べ替え
     xlLeftToRight 列の並べ替え
  • SortMethod (省略可能)
     日本語が含まれていたときの並べ替え順序
     xlPinYin 音読み順
     xlStroke 画数順



データのソート(並べ替え)を行うVBA

Excel VBA 標準モジュールコード

B2:G100の範囲を、D列をキーに並べ替えを行います。

Sub MySort()
    ActiveSheet.Range("B2:G100").Sort Key1:=Range("D1") _
        , Order1:=xlAscending _
        , Header:=xlGuess _
        , MatchCase:=False _
        , Orientation:=xlTopToBottom _
        , SortMethod:=xlPinYin
End Sub

VBEの画面

MyySortプロシージャを作成しました。

VBEの画面

実行前のシートです。

実行前のシート

実行結果のシートです。

C列の「人口総数」が昇順で並べ替えられています。

実行結果のシート

■複数指定する場合

最優先されるキーがC列、次に優先されるキーがD列 、次に優先されるキーがE列に設定しています。

ActiveSheet.Range("B10:G100").Sort _
         Key1:=Range("C1"), Order1:=xlAscending _
        , Key2:=Range("D1"), Order2:=xlDescending _
        , Key3:=Range("E1"), Order3:=xlAscending _
        , Header:=xlGuess _
        , MatchCase:=False _
        , Orientation:=xlTopToBottom _
        , SortMethod:=xlPinYin


Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved