|
▼ちゃっぴ さん:
>変数の初期化処理を忘れています。
>
>lngLineNoとjの値をローカルウィンドウなどで、確認してみてください。
>
>この場合、1ファイルごとにこの値を初期化してやらないといけないです。
お世話になります。
j=2をカンターの下に持って行くと、思っていた(2,j....)位置に出力されました。
変数の初期化というのは、1ファイル目読み込み出力したら、リセットするみたいなことなんですよね?今回の場合は、テキストファイルオープン後にリセットするとうまくいきそうなかんじがするのですが、初期化はどういうコマンドなんでしょうか?
Sub S_ChkError()
Dim strFilePath As String
Dim strBuffer As String
Dim vntDivBuf As Variant
Dim lngLineNo As Long
Dim i As Long, j As Long
Dim ファイルx As Long
For ファイルx = 1 To 3
j = 2 '2行目
strFilePath = Cells(1, ファイルx)
'テキストファイルオープン
Open strFilePath For Input As #1
←でリセット
'最終行までループ
Do
'行番号インクリメント
lngLineNo = lngLineNo + 1
'1行読み出し
Line Input #1, strBuffer
'各要素に分解(配列に格納)
vntDivBuf = Split(strBuffer, " ")
'同じ値がないかマッチング
For i = 0 To 1
If vntDivBuf(i) = vntDivBuf(i + 3) _
Or vntDivBuf(i) = vntDivBuf(i + 6) _
Or vntDivBuf(i + 3) = vntDivBuf(i + 6) Then
'セルへの出力を記述してください
Sheets("Sheet1").Cells(j, ファイルx).Value = lngLineNo
j = j + 1
Exit For
End If
Next i
Loop Until EOF(1)
Close #1
Next ファイルx
End Sub
|
|