VB でお気楽ソート
http://www.interq.or.jp/www-user/komurak/progtec/031.htm
いままで、どうしても VB でやらなければならなくなった場合、シコシコ コーディングしてたソート処理ですが、Microsoft ActiveX Data Objects(ADO) を 使うことによって、すごく簡単になります。
ADO を参照設定し、フォームに、リストボックスを貼り付けて、以下のコードを 実行してみてください。
なんと、ソートのロジックは、
(Recordset).Sort "ソートフィールド名"
のみ!
Option Explicit
Private Sub Form_Load()
Dim objRec As ADODB.Recordset
Dim lngValue As Integer
Dim i As Long' Recordset オブジェクトを作成
Set objRec = New ADODB.Recordset
' フィールドを追加
With objRec.Fields
Call .Append("myfield0", adInteger, , adFldIsNullable)
Call .Append("myfield1", adVarChar, 10, adFldIsNullable)
End WithWith objRec
' Recordset オブジェクトにテストデータを格納
Call .Open
For i = 1 To 100
lngValue = Rnd(1) * 32767
.AddNew
.Fields(0) = lngValue
.Fields(1) = CStr(lngValue)
.Update
Next' ソート。なんと、この一文だけ!(^_^;)
.Sort = "myfield0"
' リストボックスに表示
.MoveFirst
Do Until .EOF
List1.AddItem .Fields(1)
.MoveNext
Loop
.Close
End With
Set objRec = Nothing
End Sub