F0000025_配列の重複データを削除して返す

配列の重複データを削除して返す 関数リファレンス

この関数について

Excelの標準機能で「重複の削除」を利用したことがある人は多いと思います。私は常々データの扱いはセル上では行わず、変数や配列を使うことをおすすめしています。そのためシートやセル上でできることはすべて配列上で実行できるようにする義務が私にはあると考えています。そのために作った関数のひとつです・・・が、ExcelVBA(マクロ)上で重複を取り除くような処理は書き方も難しくなく、他の処理と並列して、例えばFormatでデータの書式を変更しつつ重複を削除していくというようなことができるため、単一の機能しか持たないこの関数の私の使用率はゼロに近いです。さらにいうと、重複を削除するだけという処理はExcelの標準機能として実装されており、わざわざ自動化するほどでもありません。一見便利そうに見える関数ですが未だ日の目をみることがない関数です。

関数コピペ ~コードをクリックするだけでコピー完了!~



使い方 ①引数

■引数1:target_arr
 重複を削除したい配列を渡します。MAX2次元まで

■引数2:duplicate_index
 重複を削除するときのキーを指定します。整数もしくは整数を格納した1次元配列を渡します。引数1で2次元配列を渡した場合だけ有効です。ここで指定した整数をインデックスとして重複を判定しレコードを削除します。
 例)Array(1,3) ・・・ 1列目と3列目の組み合わせが重複する場合、削除
 例)2      ・・・ 2列目が重複する場合、削除

■引数3:var_type_code
 vbString、vbVariantのいずれかを指定可能です。戻り値の配列の型を指定できます。指定がなかったり誤っている場合は、Variant型配列を返します。

■引数4:based_index
 戻り値の配列の最小のインデックスを指定できます。デフォルトは1です。

使い方 ②戻り値

重複を削除した配列を返します。

サンプルコード(クリックでコピー)






【結果】配列内の重複を削除することができました

サンプルコードを実行すると重複を削除した配列をcsv形式の文字列へ変換し、メッセージ出力します。

関数リファレンスにはコピペで使用可能な便利関数を多数掲載!

関数リファレンスでは私が開発の中で必要になったコード部品を汎用化・関数化して公開しています。この記事で紹介した関数以外にもコピペで利用できる関数を多数用意しています。検索窓から必要な機能を検索してみましょう!解説記事も続々公開中。

Comment