訂正です。いらないIF文が残っていました。
For j = 0 To UBound(strAry)
If Left(buf1, 7) = Left(strAry(j), 7) Then
If Left(buf1, 7) = Left(buf2, 7) Then
tmp = Split(buf2, ",")
tmp(1) = Format(tmp(1), "###,###")
tmp(1) = Right(Space(8) & tmp(1), 8)
tmp(2) = Format(tmp(2), "00000000")
ss = Left(buf1, 7) & tmp(1) & tmp(2) & Right(buf1, 2)
Print #3, ss
End If
Else
Print #3, buf1
End If
Next j
のところで、
If Left(buf1, 7) = Left(buf2, 7) Then
にかかるIF文はいらないので、
For j = 0 To UBound(strAry)
If Left(buf1, 7) = Left(strAry(j), 7) Then
tmp = Split(buf2, ",")
tmp(1) = Format(tmp(1), "###,###")
tmp(1) = Right(Space(8) & tmp(1), 8)
tmp(2) = Format(tmp(2), "00000000")
ss = Left(buf1, 7) & tmp(1) & tmp(2) & Right(buf1, 2)
Print #3, ss
Else
Print #3, buf1
End If
Next j
のようにしてください。
したがって、全体では、
Sub test()
Dim strFile1 As String
Dim strFile2 As String
Dim strFile3 As String
Dim buf1 As String
Dim buf2 As String
Dim strAry() As String
Dim tmp As Variant
Dim ss As String
Dim i As Long
Dim j As Long
'ファイルまでのパス
strFile1 = CurrentProject.Path & "\" & "FileA.txt"
strFile2 = CurrentProject.Path & "\" & "FileB.txt"
strFile3 = CurrentProject.Path & "\" & "FileC.txt"
Open strFile1 For Input As #1
Open strFile2 For Input As #2
Open strFile3 For Output As #3
i = 0
Do Until EOF(2)
Line Input #2, buf2
ReDim Preserve strAry(i)
strAry(i) = buf2
i = i + 1
Loop
Do Until EOF(1)
Line Input #1, buf1
For j = 0 To UBound(strAry)
If Left(buf1, 7) = Left(strAry(j), 7) Then
tmp = Split(buf2, ",")
tmp(1) = Format(tmp(1), "###,###")
tmp(1) = Right(Space(8) & tmp(1), 8)
tmp(2) = Format(tmp(2), "00000000")
ss = Left(buf1, 7) & tmp(1) & tmp(2) & Right(buf1, 2)
Print #3, ss
Else
Print #3, buf1
End If
Next j
Loop
Close #1
Close #2
Close #3
End Sub
と、なります。
不具合があれば補足してください。
お礼
本当に最後までお付き合いいただきありがとうございました。 とても感謝しています。