2次元配列をソートしたいのですが、ただ単にするわけではなくDim dat(9, 1) As Longで宣言するとして、右辺の0にはX座標1にはY座標が入っているので
この関係をくづさずY座標をもとにソートした後にX座標をもとにソート
を一括でする場合はどのようにすればよいのでしょうか?
ソートできればいいのなら、
オンメモリレコードセットに放り込むとか、
両座標を連結してListBoxあたりに放り込むとか。
クロスサイトポスト。
http://www.gizshare.com/vbtomo/boards/vbchoshoqa.php?do=spread&num=4152
List1をフォームに貼り付けて、SortedプロパティをTrueにして
Dim b() As String
For i = 0 To UBound(data)
List1.AddItem Format(data(i, 0), "0000000000") & " " _
& Format(data(i, 1), "0000000000")
Next
For i = 0 To List1.ListCount - 1
b = Split(List1.List(i))
data(i, 0) = Val(b(0)): data(i, 1) = Val(b(1))
'Debug.Print data(i, 0) & " " & data(i, 1)
Next
こんなかんじかな。
文字列でソートする場合は右詰めで0をパディングします。
マイナスがある場合は、最小値が0になるようにオフセットを
つけて、ソートした後に、再びオフセット分引きます。
ツイート | ![]() |