テキストファイルを読込,表示,保存する
                                                        玄関へお回り下さい。
テキストファイルを読込・表示する           (024)
     コンマ区切りのテキストファイル(Seiseki.csv)をシーケンシャルファイルとして読込MSFlexGridのセルに表示します。
(Seiseki.csv)はエクセルでCSV形式で保存したものです。
Excel等で下記のように作成し、CSV形式で保存して下さい。
ファイルの保存場所はそれぞれの環境に合せて変更して下さい。

 

その1で作成したコードに下記の部分を追加して下さい。

メニューを作成し
Private Sub mnuFileOpen_Click()
'メニューの読込表示
  Call sFileOpen
End Sub


Private Sub
sFileOpen()
'データ読込表示処理
  Dim Sno    As Integer  '出席番号
  Dim name   As String   '名前
  Dim kokugo  As Single   '国語の点数
  Dim suugaku  As Single   '数学の点数
  Dim eigo   As Single   '英語の点数
  Dim goukei  As Single   '合計点
  Dim heikin  As Single   '平均点
  Dim DatN   As Integer  'データのカウント
  Dim intFileNo As Integer  'ファイルNo
  DatN = 0

  With MSFlexGrid1
    .Visible = False    '一旦非表示に(読込が早くなる)
    intFileNo = FreeFile
    'シーケンシャル入力モードでSeiseki.txtをオープン
    'ファイルのPATHは別途設定して下さい。
    Open "Seiseki.csv" For Input As #intFileNo
    Do Until EOF(intFileNo)  'EOF(intFileNo)が True になるまで実行
      Input #intFileNo, Sno, name, kokugo, suugaku, eigo, goukei, heikin
      '読込んだデータをセルに代入
      .Rows = DatN + 2
      .Row = DatN + 1
      .RowHeight(.Row) = 350
      .Col = 0
      .Text = Format$(DatN + 1, "##0")
      .Col = 1
      .Text = Format$(Sno, "####0")
      .Col = 2
      .Text = name
      .Col = 3
      .Text = Format$(kokugo, "####0")
      .Col = 4
      .Text = Format$(suugaku, "####0")
      .Col = 5
      .Text = Format$(eigo, "####0")
      .Col = 6
      .Text = Format$(goukei, "####0")
      .Col = 7
      .Text = Format$(heikin, "###0.0")

      DatN = DatN + 1
    Loop
    Close #intFileNo
    'カレントセルをホームポジションに
    .Row = 1
    .Col = 1
    .TopRow = 1
    .Visible = True     '再表示
    .SetFocus
  End With
End Sub


以上で「Seiseki.csv」ファイルを読込セルに表示できるはずです。

テキストファイルを保存する。              (024)

現在表示されているデータをファイルに保存するように設定する。
保存するには、ファイルをシーケンシャル出力モードでオープンし、Write#ステートメントで書き込みます。
ファイルをoutputモードで開いた場合は、ファイルの先頭からデータが保存されAppendモードで開いた場合は、ファイルの最後に追加されます。

    
メニューを作成し
Private Sub mnuFileSave_Click()
'上書保存のメニュー
  Call sFileSave
End Sub


Private Sub sFileSave()
'データの上書保存処理
  Dim lngCountI As Long    'ループのカウンター
  Dim Sno    As Integer  '出席番号
  Dim name   As String   '名前
  Dim kokugo  As Single   '国語の点数
  Dim suugaku  As Single   '数学の点数
  Dim eigo   As Single   '英語の点数
  Dim goukei  As Single   '合計点
  Dim heikin  As Single   '平均点
  Dim intFileNo As Integer  'ファイルNo
  intFileNo = FreeFile
  Open "Seiseki.csv" For Output As #intFileNo
  With MSFlexGrid1
    .Visible = False    '一旦非表示に(読込が早くなる)
    '現在の状態を配列に再読込
    For lngCountI = 1 To .Rows - 1
      .Row = lngCountI
      .Col = 1
      Sno = .Text
      .Col = 2
      name = .Text
      .Col = 3
      kokugo = .Text
      .Col = 4
      suugaku = .Text
      .Col = 5
      eigo = .Text
      .Col = 6
      goukei = .Text
      .Col = 7
      heikin = .Text

      Write #intFileNo, Sno, name, kokugo, suugaku, eigo, goukei, heikin

    Next lngCountI
    Close #intFileNo
    'カレントセルを反転表示に戻す
    .Visible = True
    .Row = 1 'ホームポジションに移動
    .Col = 1
    .TopRow = 1
    .SetFocus
  End With
End Sub




2002/04/27