VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/07/09(Wed) 11:45
投稿者tea
Eメール
URL
タイトルRe^6: ファイルの分割表示の質問

> 1.まずファイルをオープンします。
> 2.(0)には1行目から5行目までのデータを表示すると決まっているようなので
>   ループはFor文を使って5回ループさせます。
> 3.(1)への表示も同様にFor文を使って5回ループさせます。
> 4.ファイルをクローズします。

nanashiさん、簡潔なご指導ありがとうございます。
コードを書き直した結果、MSFlexGrid2(0)には5行が正しく表示される
ようになりましたが、MSFlexGrid2(1)では何故か10行表示されて1行
から5行が空白で6行目から10行目までは正しく表示されます。
何度もコードを書いてしまって申し訳ないんですが、教えてください。
Private Sub sFileOpen()
'データ読み込み表示処理'
Dim name As String   '名前'
Dim Shot As String   'シュート回数'
Dim ThreePShot As String '3ポイントシュート成功回数'
Dim TwoPShot As String   '2ポイントシュート成功回数'
Dim FreeThrow As String   'フリースロー成功回数'
Dim Soutokuten As String   '総得点'
Dim Rebound As String   'リバウンド獲得回数'
Dim Assist As String   'アシスト成功回数'
Dim Steel As String   'スティール成功回数'
Dim BlockShot As String   'ブロックショット成功回数'
Dim Foul As String   'ファウル回数'

Dim DatN As Integer  'データのカウント'
Dim intFileNo As Integer   'ファイルナンバー'
Dim i As Integer
Dim j As Integer
DatN = 0

    'キャンセルボタンが押されたらエラーとして通知'
    CommonDialog1.CancelError = True
    
    'エラーが起きたら最終行へ'
    On Error GoTo Cancel_exit
    
    'フィルターは「*.csv」'
    CommonDialog1.Filter = "シート (*.csv)|*.csv"
    
    'ダイアログボックスの形を決める'
    CommonDialog1.Flags = cdlOFNExplorer Or cdlOFNFileMustExist Or _
        cdlOFNHideReadOnly Or cdlOFNLongNames Or cdlOFNNoChangeDir
        
    'ファイルを開くを表示'
    CommonDialog1.ShowOpen
    
    'ファイル名をfile_nameにセット'
    file_name = CommonDialog1.FileName
    
    With MSFlexGrid2(0)
        .Visible = False   '一旦非表示にする'
        .FillStyle = flexFillRepeat
        
        intFileNo = FreeFile
        
        'シーケンシャル入力モードでfile_nameをオープンする'
        Open file_name For Input As #intFileNo
        
        '1行目から5行目まで表示'
        For i = 1 To 5
                
            Input #intFileNo, name, Shot, ThreePShot, TwoPShot, FreeThrow, _
                        Soutokuten, Rebound, Assist, Steel, BlockShot, Foul
                
            '読み込んだデータをセルに代入'
            .Rows = DatN + 2
            .Row = DatN + 1
            .RowHeight(.Row) = 350
            .Col = 0
            .Text = Format$(DatN + 1, "##0")
            .Col = 1
            .Text = Format$(name, "####0")
            .Col = 2
            .Text = Format$(Shot, "####0")
            .Col = 3
            .Text = Format$(ThreePShot, "####0")
            .Col = 4
            .Text = Format$(TwoPShot, "####0")
            .Col = 5
            .Text = Format$(FreeThrow, "####0")
            .Col = 6
            .Text = Format$(Soutokuten, "####0")
            .Col = 7
            .Text = Format$(Rebound, "####0")
            .Col = 8
            .Text = Format$(Assist, "####0")
            .Col = 9
            .Text = Format$(Steel, "####0")
            .Col = 10
            .Text = Format$(BlockShot, "####0")
            .Col = 11
            .Text = Format$(Foul, "####0")
                        
            DatN = DatN + 1
            
        Next i
            
        'カレントセルをホームポジションに'
        .FillStyle = flexFillSingle
        .Row = 1
        .Col = 1
        .Visible = True   '再表示'
        .SetFocus
    End With
    
    With MSFlexGrid2(1)
        .Visible = False   '一旦非表示にする'
        .FillStyle = flexFillRepeat
        
        '6行目から10行目まで表示'
        For i = 6 To 10
                
            Input #intFileNo, name, Shot, ThreePShot, TwoPShot, FreeThrow, _
                        Soutokuten, Rebound, Assist, Steel, BlockShot, Foul
            
            '読み込んだデータをセルに代入'
            .Rows = DatN + 2
            .Row = DatN + 1
            .RowHeight(.Row) = 350
            .Col = 0
            .Text = Format$(DatN + 1, "##0")
            .Col = 1
            .Text = Format$(name, "####0")
            .Col = 2
            .Text = Format$(Shot, "####0")
            .Col = 3
            .Text = Format$(ThreePShot, "####0")
            .Col = 4
            .Text = Format$(TwoPShot, "####0")
            .Col = 5
            .Text = Format$(FreeThrow, "####0")
            .Col = 6
            .Text = Format$(Soutokuten, "####0")
            .Col = 7
            .Text = Format$(Rebound, "####0")
            .Col = 8
            .Text = Format$(Assist, "####0")
            .Col = 9
            .Text = Format$(Steel, "####0")
            .Col = 10
            .Text = Format$(BlockShot, "####0")
            .Col = 11
            .Text = Format$(Foul, "####0")
                        
            DatN = DatN + 1
        
        Next i
        
        'カレントセルをホームポジションに'
        .FillStyle = flexFillSingle
        .Row = 1
        .Col = 1
        .Visible = True   '再表示'
        .SetFocus
    End With
    
    Close #intFileNo
    
    'ファイル名を表示する'
    frmGameStats.Caption = file_name
    
    Exit Sub
    
    'エラー処理'
Cancel_exit:

    MsgBox Err.Description

End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -