[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/08/24(Tue) 19:53
投稿者名:GA-KO
Eメール:
URL :
タイトル:
msflexgridのソート処理について
MXFlexGridの列名をクリックした時にデータのソートを行いたいのですが、
問題が二つあります。
1.列名を選択しても、(row=1)となってしまい、イベントを起こせません。
 また、MouseCol、MouseRowを使用すると、 どのセルを選択しても、.MouseCol =3、  .MouseRow=0となってしまいます。
 プロパティはFixCols=4、FixRows=1、SelectionMode=flexSelectionbyColumn です。
 何か関係ありますか?
2.イベントを起こせたとして、
 with msflexgrid 
  .Col = .Col         'ソート順を指定してソートの開始
    .Sort = 3
  end with
  と書いていますが、ソートできません。
 どこがちがうのでしょうか?
 

投稿時間:2004/08/24(Tue) 20:56
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: msflexgridのソート処理について
下記を試して見てください。

Option Explicit
Private SortFlag As Boolean

Private Sub Form_Load()
    Dim i As Integer, j As Integer
    With MSFlexGrid1
       .Move 150, 150, 4000, 2600
       .Rows = 10
       .Cols = 4
       .FixedRows = 1
       .FixedCols = 0
        For i = 1 To .Rows - 1
            For j = 0 To .Cols - 1
                .TextMatrix(i, j) = CInt(9 * Rnd + 1)
            Next j
        Next i
    End With
End Sub

Private Sub MSFlexGrid1_Click()
    With MSFlexGrid1
         '最初の列(0 列目)をソート
'        If .Col = 0 And .Row = 1 And .MouseRow = 0 Then
'            SortFlag = Not SortFlag
'            If SortFlag Then
'               .Sort = 3
'            Else
'               .Sort = 4
'            End If
'        End If
        '以下同様に必要な列だけ追加
        
        'ソートの条件が同じなら下記でok
        If .Row = 1 And .MouseRow = 0 Then
            SortFlag = Not SortFlag
            If SortFlag Then
               .Sort = 3
            Else
               .Sort = 4
            End If
        End If
    End With
End Sub

投稿時間:2004/08/25(Wed) 09:37
投稿者名:GA-KO
Eメール:
URL :
タイトル:
解決しました。
できました。ありがとうございました。