Sub test()
Const f1 As String = "C:\x.txt"
Const f2 As String = "C:\y.txt"
Const f3 As String = "C:\z.txt"
Const fout As String = "C:\newfile.txt"
If CombineFiles(fout, f1, f2, f3) Then
MsgBox "Done!"
Else
MsgBox "Error!"
End If
End Sub
Function CombineFiles(fout, f1 As String, Optional f2 As String, Optional f3 As String) As Long
On Error GoTo ErrCombineFiles
Dim a(2)
If Len(f1) = 0 Or Len(fout) = 0 Then Exit Function
With CreateObject("Scripting.FileSystemObject")
a(0) = .OpenTextFile(f1).ReadAll
If Len(f2) Then
a(1) = Split(.OpenTextFile(f2).ReadAll, vbNewLine)
a(1)(0) = ""
a(1) = Join(a(1), vbNewLine)
End If
If Len(f3) Then
a(2) = Split(.OpenTextFile(f3).ReadAll, vbNewLine)
a(2)(0) = ""
a(2) = Join(a(2), vbNewLine)
End If
.CreateTextFile(fout, True).write Join(a, "")
End With
ErrCombineFiles:
CombineFiles = Err.Number = 0
End Function