| 
    
     |  | おおっ!みなさんありがとうございます。 Blueさん、みんなが勉強になればぜんぜんいいですよ。
 僕にはまだちょっと理解できませんでしたが。
 
 neptune さんのやり方を使わせていただきました。
 自分なりに改良して、途中にコメント文などつけてやってみました。
 でもやはりうまくいかない。
 昨日から何度やってもインデックスの範囲が・・型が・・・などエラーがでてしまいます。
 
 やろうとしていることはCSVのファイルから1行ずつ読み込みます。
 そして必要なデータを抽出して計算させるといったものです。
 1,2行目は関係ない文章が出てくるので読み飛ばします。
 3行目からデータとなります。
 データは
 「第1回,54%,1,2,3,4,5,6,7,8,9,10」
 といったようになっていて、これが第2回、第3回とどんどん増えていきます。
 3番目の「1」から12番目の「10」
 までが必要なデータとなります。
 
 このデータを使って合計や平均など求めようとしています。
 現段階では配列に数値を入れた時点でエラーがでます。
 教えてください。
 
 
 Option Explicit
 
 Dim Nin As String
 Dim strIN As String
 Dim tblDatafield() As Variant
 Dim tblDataRow() As Variant
 Dim tblDataSuuti() As Variant
 Dim csvDATA As String
 
 Dim j As Long
 Dim k As Long
 
 Private Sub CommandButton1_Click()
 
 Dim lBuf(9) As Long
 Dim goukei As Long
 Dim I As Long
 Dim Suuti As Variant
 
 'ファイルの入出力のパスを指定
 strIN = ThisWorkbook.Path & "\Loto6.csv"
 
 '未使用のファイル番号を取得・入力ファイルを読み取り専用で開く
 Nin = FreeFile
 Open strIN For Input As #Nin
 
 '始めの余分な2行を読み込む
 Line Input #Nin, csvDATA
 Line Input #Nin, csvDATA
 
 '数値の初期化
 j = 0
 k = 0
 
 'ファイルの読み込みを繰り返す
 While Not EOF(Nin)
 'ファイルを1行ずつ読み込む
 Line Input #Nin, csvDATA
 
 '「,」区切りでデータを区切る・配列に入れる
 tblDataRow(k) = csvDATA
 tblDatafield(j) = Split(tblDataRow(k), ",")
 tblDataSuuti = Array(CInt(tblDatafield(2)), CInt(tblDatafield(3)), _
 CInt(tblDatafield(4)), CInt(tblDatafield(5)), _
 CInt(tblDatafield(6)), CInt(tblDatafield(7)), _
 CInt(tblDatafield(8)), CInt(tblDatafield(9)), _
 CInt(tblDatafield(10)), CInt(tblDatafield(11)))
 
 For I = 0 To 5
 lBuf(I) = tblDataSuuti(I)
 Next I
 
 goukei = FuncGoukei(lBuf)
 Debug.Print goukei
 
 'インクリメント
 k = k + 1
 j = j + 1
 Wend
 End Sub
 
 
 '***************合計値***************
 Public Function FuncGoukei(pData() As Long) As Long
 Dim I As Long
 Dim lAns As Long
 
 For I = 0 To UBound(pData())
 lAns = lAns + pData(I)
 Next I
 FuncGoukei = lAns
 End Function
 
 |  |