![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
例えば
・以下の表のB列「名前」の「重複した値」
から…
![重複した値](https://excel-vba.work/wp-content/uploads/2021/05/vba_getuniquelist_001.png)
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
「重複を除いたリスト(配列)」を
作成できます!
![重複を除いたリスト(配列)](https://excel-vba.work/wp-content/uploads/2021/05/vba_getuniquelist_003.png)
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAから
・ワークシート関数である「UNIQUE関数」
を使用することで実現できます!
※UNIQUE関数はOffice365のExcelでのみ使用できる関数です。
VBAコード
ここでは例として、
・シート「sample」のB列「名前」の「重複した値」を使用して
・重複を除いたリスト(配列)を作成し
・イミディエイトウインドウへ出力
します。
![重複した値](https://excel-vba.work/wp-content/uploads/2021/05/vba_getuniquelist_001.png)
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 arrUniqueList 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)
'重複を除いたリスト(配列)を作成
arrUniqueList = WorksheetFunction.Unique(targetRange)
For Each item In arrUniqueList
'重複を除いたリスト(配列)をイミディエイトウインドウへ出力
Debug.Print item
Next
End Sub
実行結果
「重複を除いたリスト(配列)」を作成できました。
![実行結果](https://excel-vba.work/wp-content/uploads/2021/05/vba_getuniquelist_003.png)
参考①
シート上のデータの重複の削除もできます。
詳細は以下の記事をご確認ください。
参考②
配列から重複を削除することもできます。
詳細は以下の記事をご確認ください。
参考③
「ソート(並び替え)されたリスト(配列)」の作成もできます。
詳細は以下の記事をご確認ください。
参考④
「フィルターされたリスト(配列)」の作成もできます。
詳細は以下の記事をご確認ください。
参考⑤
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●UNIQUE関数
●イミディエイトウィンドウへ出力