掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSFlexGridでソートするには? (ID:109786)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
昔作ったサンプルコードがありましたので載せます。 以下は説明重視なコード例。 SQL的に書けば"ORDER BY 列2 DESC, 列1 ASC, 列3 DESC"のソートを行う。 (ここで列1,3は文字列、列2は数値Dataとする) Private Sub MSFlexGrid1_Compare( _ ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer) Const TYPE_STRING% = 8 Const TYPE_NUMBER% = 0 Const ASC% = 1 Const DESC% = -1 Dim i As Long Dim OrderBy As Variant 'ソート条件 OrderBy = Array(2, TYPE_NUMBER, DESC, _ 1, TYPE_STRING, ASC, _ 3, TYPE_STRING, DESC) With MSFlexGrid1 For i = 0 To UBound(OrderBy) Step 3 If OrderBy(i + 1) = TYPE_STRING Then Cmp = StrComp(.TextMatrix(Row1, OrderBy(i)), _ .TextMatrix(Row2, OrderBy(i)), vbTextCompare) Else Cmp = Sgn(CDbl(.TextMatrix(Row1, OrderBy(i))) - _ CDbl(.TextMatrix(Row2, OrderBy(i)))) End If If Cmp <> 0 Then Cmp = Cmp * OrderBy(i + 2) Exit For End If Next End With End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.