【VBA】ソート(並び替え)されたリスト(配列)を作成する【SORT関数】

例えば
 ・以下のB列「名前」の「ソート(並び替え)される前の値」
から…

ソートされる前の値
ソート(並び替え)される前の値

「ソート(並び替え)されたリスト(配列)」を
作成できます!

ソート(並び替え)されたリスト(配列)
ソート(並び替え)されたリスト(配列)

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

PR

VBAコード

ここでは例として、
 ・シート「sample」のB列「名前」の「ソートされる前の値」を使用して
 ・ソート(並び替え)されたリスト(配列)を作成し
 ・イミディエイトウインドウへ出力
します。

ソートされる前の値
Option Explicit

Sub sample()
    
    Dim ws As Worksheet
    Dim startRange As Range
    Dim endRow As Double
    Dim endRange As Range
    Dim targetRange As Range
    Dim arrSortList As Variant
    Dim item As Variant

    'リストのある対象シートを取得
    Set ws = Worksheets("sample")

    'リストの開始セルを取得
    Set startRange = ws.Range("B3")
    'リストの最終行を取得
    endRow = startRange.End(xlDown).Row
    'リストの最終セルを取得
    Set endRange = ws.Cells(endRow, startRange.Column)

    'リストの対象範囲を取得
    Set targetRange = ws.Range(startRange, endRange)
    
    'ソート(並び替え)されたリスト(配列)を作成
    arrSortList = WorksheetFunction.Sort(targetRange, 1, 1, False)

    For Each item In arrSortList
        'ソート(並び替え)されたリスト(配列)をイミディエイトウインドウへ出力
        Debug.Print item
    Next

End Sub

「WorksheetFunctionオブジェクト」の「Sort」メソッドにより、「ソート(並び替え)されたリスト(配列)」を作成します(27行目)。
※ワークシート関数の「SORT関数」です。

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

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

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

実行結果

「ソート(並び替え)されたリスト(配列)」を作成できました。

実行結果
実行結果
PR

参考①

重複を除いたリスト(配列)」の作成もできます。

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

PR

参考②

フィルターされたリスト(配列)」の作成もできます。

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

PR

参考③

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

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

PR

参考④

単純に配列をソート(並び替え)することもできます。

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

PR

参考⑤

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

●SORT関数


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