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 With

  With 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