|
neptuneさんありがとうございます。
やっていくうちにインデックスの範囲が・・・
いうエラーはなぜこのエラーがでるのかがおかげさまで分かってきました。
その後↓の部分まで進んだのですがどうやら型があわないようです。
lBuf(i) = tblDataSuuti(i)
なんですが、
lBuf(i) はLong型
tblDataSuuti(i)はVariant型、中身の配列はLong型になっています。
Long型同士でいいような感じがするのですがだめみたいです。
ここがうまくいけば合計値を求めるところまでいきそうです。
ちなみに読み込むファイルは1Mないくらいです。
Option Explicit
Private Sub CommandButton1_Click()
Dim Nin As String
Dim strIN As String
Dim tblDatafield() As String
Dim tblDataRow() As String
Dim tblDataSuuti(9) As Variant
Dim csvDATA As String
Dim j As Long
Dim k As Long
Dim lBuf(9) As Long
Dim goukei As Long
Dim i As Long
Dim Suuti As String
'ファイルの入出力のパスを指定
strIN = ThisWorkbook.Path & "\output.csv"
'未使用のファイル番号を取得・入力ファイルを読み取り専用で開く
Nin = FreeFile
Open strIN For Input As #Nin
'始めの余分な2行を読み込む
Line Input #Nin, csvDATA
Line Input #Nin, csvDATA
'数値の初期化
j = 0
k = 0
ReDim tblDataRow(1000)
'ファイルの読み込みを繰り返す
While Not EOF(Nin)
'ファイルを1行ずつ読み込む
Line Input #Nin, csvDATA
'「,」区切りでデータを区切る・配列に入れる
tblDatafield() = Split(csvDATA, ",")
tblDataSuuti(i) = Array(CLng(tblDatafield(2)), CLng(tblDatafield(3)), _
CLng(tblDatafield(4)), CLng(tblDatafield(5)), _
CLng(tblDatafield(6)), CLng(tblDatafield(7)), _
CLng(tblDatafield(8)), CLng(tblDatafield(9)), _
CLng(tblDatafield(10)), CLng(tblDatafield(11)))
For i = 0 To 9
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
|
|