エクセルバージョン
マイクロソフト365
今回はエクセルVBAで重複データを削除したデータではなくて、その反対の1回も重複しなかったデータの取得を実施してみたいと思います(^^♪
それでは行ってみましょう!
Menu
作成の流れ
・UNIQUE関数の第3引数をTRUEにしてマクロで記録します。
・出来上がったコードを編集して完成です。
マクロの記録
まずはUNIQUE関数の第3引数をTRUEにしてマクロの記録を実行します。
すると下記のようなコードが記録されるのでVBAで編集していきます。
1 | ActiveCell.Formula2R1C1 = "=UNIQUE(C[-1],,TRUE)" |
VBAの編集
マクロで記録されたFormula2R1C1プロパティを使用することでUNIQUE関数と一緒の動きが実現できるようです。
あとは操作しやすいように定数ROWNUM(行番号)と定数COLNUM (列番号)で、行番号と列番号を入力すればお好きなセルに取得できるようにします。
サンプルコード
【今回使用するデータ】
データは下記のようにA列にセットします。
下記のサンプルはB1セルに、1度も重複しなかったデータを取得できます。
1 2 3 4 5 6 7 8 9 | Option Explicit Const ROWNUM As Integer = 1 '行番号を指定 Const COLNUM As Integer = 2 '列番号を指定 Sub uniTest() Dim dataCol As Integer dataCol = COLNUM - 1 Cells(ROWNUM, COLNUM).Formula2R1C1 = "=UNIQUE(C[-" & dataCol & "],,TRUE)" End Sub |
【結果】
重複しなかったデータだけB列に取得することができます\(^o^)/
例えば
C1セルに取得したい場合は、定数ROWNUMを1、定数COLNUMを3
D3セルに取得したい場合は、定数ROWNUMを3、定数COLNUMを4
にしてあがれば、1度も重複しなかったデータが取得できます。
まとめ
VBAで重複削除データ取得の記事はたくさんあったのですが、その反対の1度も重複しなかったデータの取得がなかったので記事にしてみました。
以上です。
重複データを削除関連
【基本】重複非表示と違う列に削除データ作成(フィルターオプション)
【VBA】重複削除データの作成方法(RemoveDuplicatesとDictionary)
データが1回も重複しかったデータを取得関連
【関数】データが1回も重複しなかったデータを取得(UNIQUE関数)
【VBA】1回も重複しなかったデータを取得(Formula2R1C1とUNIQUE)
重複しない乱数関連
【VBA】重複しない乱数作成と指定範囲をランダム表示(Rnd)
【JavaScript/JQuery】重複なしのランダムデータを作成