>>760
こんな感じかな?

' QuickSortの部分はWebで拾ったサンプルのコピペ。

Type POINT
x As Double, y As Double
End Type

Sub main()
Dim i As Long
Dim data(0 To 99) As POINT

For i = 0 To 99
data(i).x = Rnd
data(i).y = Rnd
Next

QuickSort data, LBound(data), UBound(data)

For i = 0 To 99
Debug.Print data(i).x; " "; data(i).y
Next
End Sub

Sub QuickSort(ByRef TargetArray() As POINT, StartArray As Long, EndArray As Long)
Dim Count As Long
Dim LastArray As Long
Dim SwapBuff As POINT

If StartArray >= EndArray Then Exit Sub

SwapBuff = TargetArray(StartArray)
TargetArray(StartArray) = TargetArray((StartArray + EndArray) / 2)
TargetArray((StartArray + EndArray) / 2) = SwapBuff

LastArray = StartArray

For Count = StartArray + 1 To EndArray
If TargetArray(Count).x < TargetArray(StartArray).x Then
LastArray = LastArray + 1
SwapBuff = TargetArray(LastArray)
TargetArray(LastArray) = TargetArray(Count)
TargetArray(Count) = SwapBuff
End If
Next Count

SwapBuff = TargetArray(StartArray)
TargetArray(StartArray) = TargetArray(LastArray)
TargetArray(LastArray) = SwapBuff

Call QuickSort(TargetArray, StartArray, LastArray - 1)
Call QuickSort(TargetArray, LastArray + 1, EndArray)
End Sub