重複なしのデータ抽出(2)|エクセルVBA
データを配列に読み込んでFor~Nextで逐次チェックする方法
元のデータを配列(x)に読み込み、For~Nextで逐次チェックします。
配列でチェックしているため上の方法よりは短時間で処理できます。
コード例
Sub 配列()
Dim x, y
Dim myCnt As Long, myFlg As Boolean
Dim i As Long, j As Long
With Worksheets(“Sheet1″)
x = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp))
End With
ReDim y(1 To UBound(x), 1 To 1)
y(1, 1) = x(1, 1)
myCnt = 1
For i = LBound(x) To UBound(x)
myFlg = False
For j = 1 To myCnt
If x(i, 1) = y(j, 1) Then myFlg = True: Exit For
Next j
If myFlg = False Then myCnt = myCnt + 1: y(myCnt, 1) = x(i, 1)
Next i
With Worksheets(“Sheet2″).
Range(“C:C”).ClearContents
.Range(“C1″).Resize(UBound(y), 1) = y
End With
End Sub