| 
    
     |  | こんにちは 
 >配列の要素数に限界があるので注意。
 でした。(..)
 
 配列ならループしてもそんなに時間掛からないですね。
 
 Sub test1()
 Dim AAA(1 To 1000000)
 Dim i  As Long
 Dim maxD As Long
 Dim minD As Long
 For i = 1 To UBound(AAA)
 AAA(i) = i
 Next
 maxD = AAA(1): minD = AAA(1)
 For i = 2 To UBound(AAA)
 maxD = IIf(AAA(i) > maxD, AAA(i), maxD)
 minD = IIf(AAA(i) < minD, AAA(i), minD)
 Next
 Debug.Print maxD
 Debug.Print minD
 Erase AAA
 End Sub
 
 配列(↓では単純に数値)を空のレコードセットに読み込んでソートしてって
 試しましたけど遅かった。(AddNewがネックでした。)
 
 Sub test2()
 Dim i   As Long
 Dim c   As Long
 Dim v   As Variant
 Dim rs   As Object
 Dim s   As String
 
 Set rs = CreateObject("ADODB.Recordset")
 
 With rs
 With .Fields
 .Append "data", 14   'adDecimal
 End With
 .CursorLocation = 2
 .Open
 For i = 1 To 1000000
 .AddNew
 !data = i
 Next
 .MoveFirst
 If .RecordCount > 0 Then
 .Sort = "[data] DESC"
 Debug.Print "最大値   ---" & .GetRows(1, 0, "data")(0, 0)
 .Sort = "[data] ASC"
 Debug.Print "最小値   ---" & .GetRows(1, 0, "data")(0, 0)
 End If
 .Close
 End With
 Set rs = Nothing
 End Sub
 
 |  |