この関数について
ExcelVBA(マクロ)で配列を並び替える方法をしらべると「Sort」メソッドを使いましょうという記事が出てきます。たしかに、ある一定までの件数を処理する分は十分な機能です。しかし、Excelという制約上100万行を超える配列の処理はできません。その限界を突破するために作成した関数です。
関数コピペ ~コードをクリックするだけでコピー完了!~
使い方 ①引数
■引数1:target_array
並べ替えを実施する配列を指定します。2次元まで対応。
■引数2:key_index
並べ替えのキーに使用する添え字を指定します。1次元配列の場合は指定不要。2次元配列の場合、2次元目の添え字を指定します。
■引数3:header_sort
2次元配列を並び替える場合に、最初の行を並び替えるか指定します。True ・・・ 最初の行を並び替える False ・・・ 最初の行を並び替えない 省略した場合、Trueを指定したとみなします。
■引数4:var_type_code
ExcelVBAで標準で使える型指定用の定数を渡します。対応しているのは、vbString、vbVariant、vbLong、vbDouble、vbDateです。戻り値の配列を指定した型へ変換します。省略した場合、もしくは無効な値を指定した場合、vbVariatを指定したとみなします。
使い方 ②戻り値
並び替え後の配列を返します。
サンプルコード(クリックでコピー)
降順への並び替え
この関数は降順並び替えに対応していません。別途並び順を反転させる関数などを使用してください。
【結果】配列を昇順に並び替えることができました
サンプルコードを実行すると、イミディエイトウィンドウに並び替え後の配列の中身を書き出します。配列に格納する値を変更して挙動を確認してみましょう。
関数リファレンスにはコピペで使用可能な便利関数を多数掲載!
関数リファレンスでは私が開発の中で必要になったコード部品を汎用化・関数化して公開しています。この記事で紹介した関数以外にもコピペで利用できる関数を多数用意しています。検索窓から必要な機能を検索してみましょう!解説記事も続々公開中。
Comment