| 
    
     |  | ▼ちゃっぴ さん: >変数の初期化処理を忘れています。
 >
 >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
 
 |  |