tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルMSFlexgridの列単位指定
記事No12283
投稿日: 2008/05/14(Wed) 22:25
投稿者さんた
こんにちは。

MSFlexGridについてお聞きしたいのですが、Gridの表示の速度をあげたいんですが、
まだ遅く感じてます。どうしてもセル単位でセットしているので仕方ないと思うのですが・・。


Dim ii As Long
Dim data(6) As String
Dim dbCols As ADODB.Fields
’表示部
        If rs.EOF = False Then
            MSFlexGrid1.Rows = rs.RecordCount + 1
            
            With MSFlexGrid1
                'Grid書式
                .Col = 0
                .CellAlignment = flexAlignCenterCenter
                .Col = 1
                .CellFontSize = 11
                .Col = 2
                .CellFontSize = 10
                .CellAlignment = flexAlignRightCenter
                .Col = 5
                .CellFontSize = 9
                .CellAlignment = flexAlignLeftCenter
                .Col = 6
                .CellAlignment = flexAlignCenterCenter
                
            End With
            
            rs.MoveFirst
        End If
        Do Until rs.EOF
            ii = ii + 1
            Set dbCols = rs.Fields
            data(0) = dbCols("A1").Value & ""
            data(1) = dbCols("A2").Value & ""
            data(2) = dbCols("A3").Value & ""
            data(3) = dbCols("A4").Value & ""
            data(4) = dbCols("A5").Value & ""
            data(5) = dbCols("A6").Value & ""
            data(6) = dbCols("A7").Value & ""
    
            With MSFlexGrid1
'                .Rows = ii + 1
                .Row = ii
                .RowHeight(ii) = 300
                
                .TextMatrix(ii, 0) = data(0)
                .TextMatrix(ii, 1) = data(1)
                .TextMatrix(ii, 2) = data(2)
                .TextMatrix(ii, 3) = data(3)
                .TextMatrix(ii, 4) = data(4)
                .TextMatrix(ii, 5) = data(5)
                .TextMatrix(ii, 6) = data(6)
            End With
            rs.MoveNext
        Loop

この方法でやると速度は速くなったのです(前は一行ずつ追加して書式定義してました)が、
肝心のセル書式が効きませんでした。列単位で書式を設定する事はできないのでしょうか?

また、MSFlexGridの最大行数が35万セルとここのサイト内で学びましたが、MSFlexgridのように見た目も細かい設定が出来、もっと多く表示できる一覧コントロールはないでしょうか?

よろしくお願いします。

いつもこのサイトで勉強させてもらってます、ありがとうございます、がんばってください。

[ツリー表示へ]
タイトルRe: MSFlexgridの列単位指定
記事No12284
投稿日: 2008/05/15(Thu) 06:30
投稿者花ちゃん
> MSFlexGridについてお聞きしたいのですが、Gridの表示の速度をあげたいんですが、
> まだ遅く感じてます。

データのセットと書式設定は別々に設定して、設定中は、非表示にすれば早くなるかと。

>列単位で書式を設定する事はできないのでしょうか?
書式と言っても色々ありますが、(列単位で設定するもの、出来ないもの等々)

> また、MSFlexGridの最大行数が35万セルとここのサイト内で学びましたが、
>MSFlexgridのように見た目も細かい設定が出来、もっと多く表示できる一覧
>コントロールはないでしょうか?

ADO を使っているのなら、ここのサンプルのようにMSHFlexGrid(MSFlexGridでは制限あり)
を利用して下さい。
http://hanatyan.sakura.ne.jp/vbhlp/adotocsv.htm

同様に、MSFlexGrid の場合は、DAO を使用して下さい。
http://hanatyan.sakura.ne.jp/vbhlp/daoexcel.htm

その他、ここの MSFlexGrid関係 をご覧になれば大抵の事は掲載してあります。
又、過去ログを検索しても色々でてきますし、サンプル投稿用掲示板の方にも
掲載がありますので、ご覧下さい。逆に見つからない場合は出来ないと思った方が。

[ツリー表示へ]
タイトル解決!
記事No12285
投稿日: 2008/05/15(Thu) 09:23
投稿者さんた
花ちゃんさん、ありがとうございます。

Datasourseにセットするのが一番早いですね。取得データの集計もセットしてから、保持したRecordSetを再度まわして集計するのがベストっぽいですね。

列単位の書式設定はできないんですね・・。セル単位で出来た方がありがたいですし、あきらめます。

ありがとうございました。

[ツリー表示へ]