タイトル : Re^3: 平均について 投稿日 : 2008/10/24(Fri) 07:05 投稿者 : 花ちゃん
> 当方では、これを読み込み、テキストボックスに表示させるところまではできたのです どのようにして読み込んでいるのでしょうか? 又、ファイルのサイズや 行数・列数等は都度変化するのでしょうか? 表示は、テキストボックスでなければいけないのでしょうか? ここの MSFlexGrid関係 の ような使い方をすれば、後の計算等の処理がやり易すかったりします。 > for 〜 next を使って一つづつ足していこうと考えたのですが・・・・ そのようにされればいいのでは。何か問題でもありましたか? まずは、自分の理解できる方法でやる事が大事かと思いますよ。 例えば、下記の 2.テキストファイル(CSV形式)を変数毎に読み書きする http://hanatyan.sakura.ne.jp/vbhlp/txt01.htm のように配列に保存するとか、その時に合計の変数も用意しておいて計算しながら 読み込むとか。 この手のサンプルは、ここにいくらでもありますよ、只、幾らかの応用は必要ですが。 その1. サンプル投稿用掲示板の 平均値を求める(VB6.0) http://hanatyan.sakura.ne.jp/patio/read.cgi?mode=view&no=36 http://www.hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=163&no=4 面倒だから、上記のサンプルを一部修正して叩き台を作ってみました。 投稿されたデータをメモ帳で作成して、下記コードを試して見て下さい。 Private Sub Command1_Click() Dim intFileNo As Integer Dim TextLine As String Dim Mytext As String Dim CellsData As Variant Dim Sum(3) As Double Dim lngCount As Long Dim i As Long intFileNo = FreeFile 'シーケンシャル入力モードで Test.csv をオープン 'ファイルのPATHは別途設定して下さい。 Open "c:\Test.csv" For Input As #intFileNo Do Until EOF(intFileNo) 'EOF(intFileNo)が True になるまで実行 Line Input #intFileNo, TextLine '1行全体を変数に読み込む TextLine = Replace(TextLine, Chr$(34), "") ' "" を取り除く Mytext = Mytext & Replace(TextLine, ",", vbTab) & vbCrLf CellsData = Split(TextLine, ",") 'カンマ区切りで列データを分割 lngCount = lngCount + 1 If lngCount > 1 Then '項目行は演算しない For i = LBound(CellsData) To UBound(CellsData) Sum(i) = Sum(i) + CellsData(i) Next i End If Loop Close #intFileNo Dim ken As Long ken = lngCount - 1 Mytext = Mytext & vbCrLf Mytext = Mytext & Sum(0) / ken & vbTab & Sum(1) / ken & vbTab & Sum(2) / ken & vbTab & Sum(3) / ken Text1.Text = Mytext End Sub |