【VBA】配列をソート(並び替え)する【SORT関数】

VBAで
 ・配列をソート(並び替え)
できます!
※簡易にできます。
※アルゴリズム(バブルソート、クイックソート等)は不要です。

配列
配列
配列をソート(並び替え)
配列をソート(並び替え)

VBAから
 ・ワークシート関数である「SORT関数」
を使用することで実現できます!
※SORT関数はOffice365のExcelでのみ使用できる関数です。

PR

VBAコード

ここでは例として、
 ・配列を順でシート(並び替え)して
 ・イミディエイトウインドウへ出力
します。
順にもできます。

Option Explicit

Sub sample()
    
    Dim arr As Variant
    Dim arrSort As Variant
    Dim item As Variant
    
    '配列を作成
    arr = Array(50, 2, 34, 100, 60)
    
    '配列をソート(並び替え)
    arrSort = WorksheetFunction.Sort(arr, 1, 1, True)
    
    For Each item In arrSort
        'ソート(並び替え)された配列をイミディエイトウインドウへ出力
        Debug.Print item
    Next
    
End Sub

「WorksheetFunctionオブジェクト」の「Sort」メソッドにより、「配列をソート(並び替え)」します(13行目)。
※「WorksheetFunctionオブジェクト」の「Sort」メソッドはワークシート関数「SORT関数」です。
※第1引数に「ソート(並び替え)したい配列」を指定します。
※第3引数に「1」を指定すると「順」になります。「-1」を指定すると「順」になります。
※第4引数に「True」を指定します。

「WorksheetFunctionオブジェクト」の「Sort」メソッドは、Office365でのみ使用できるメソッドです。
※プリインストールされているExcelでは使用できません。

プリインストールされているExcelで「Sort」メソッドの実行を試みると、以下のエラーが発生します。

エラーメッセージ
エラーメッセージ
PR

実行結果

配列をソート(並び替え)できました。
順にできました。

実行結果
実行結果
PR

参考①

シート上のデータを取得して、「ソート(並び替え)された配列」を作成することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

シート上のデータのソート(並び替え)もできます。

詳細は以下の記事をご確認ください。

PR

参考③

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●SORT関数


●イミディエイトウィンドウへ出力