ExcelVBAでテキストファイルを比較

'テキストファイルの比較
'同じならTrue / 違うなら False
Function DiffTxtFile(aFilepath1 As String, aFilepath2 As String) As Boolean

    DiffTxtFile = True
    
    ' 機能:2つのテキストファイルを比較する
    ' 【変数定義】
    Dim file1(1) As String ' ファイル名(フルパス)
    Dim file2(1) As String ' ファイル名
    Dim nFNO(1) As Integer 'ファイル番号
    Dim buf(1) As String ' テキスト読み出し用バッファ
    Dim line_no(1) As Integer ' 行数
    Dim str1 As String ' 文字列
    Dim i As Integer ' 整数
    ' ファイル名
    file1(0) = aFilepath1 ' テキストファイル1のファイル名(フルパス)
    file1(1) = aFilepath2 ' テキストファイル2のファイル名(フルパス)
    ' ファイルが存在するか確認
    For i = 0 To 1
      If Dir(file1(i)) = "" Then
        MsgBox i & ": " & file1(i) & "が存在しません。"
        Exit Function
      End If
    Next
    For i = 0 To 1
      ' 使用可能なファイル番号を調べる
      nFNO(i) = FreeFile()
      ' ファイルを開く
      Open file1(i) For Input As #nFNO(i)
      ' 行数を初期化
      line_no(i) = 0
      ' ファイル名から、パスを除く
      file2(i) = Dir(file1(i))
    Next
    ' どちらかのファイルがEOFになるまで繰り返す
    Do Until EOF(nFNO(0)) Or EOF(nFNO(1))
      For i = 0 To 1
        Line Input #nFNO(i), buf(i) ' 1行ずつ読み出す
        line_no(i) = line_no(i) + 1 ' 行番号を1増やす
        ' 1行ずつ比較
        If i = 1 And StrComp(buf(0), buf(1), vbTextCompare) <> 0 Then
           DiffTxtFile = False
          MsgBox line_no(0) & "行目が異なります。" & vbCrLf _
          & file2(0) & "=" & buf(0) & vbCrLf _
          & file2(1) & "=" & buf(1)
           GoTo label_escape
        End If
      Next
    Loop
    ' 行数が異なるか?
    If EOF(nFNO(0)) <> EOF(nFNO(1)) Then
      For i = 0 To 1
        If EOF(nFNO(i)) = False Then
          Do Until EOF(nFNO(i))
            Line Input #nFNO(i), buf(i) ' 1行ずつ読み出す
            line_no(i) = line_no(i) + 1 ' 行番号を1増やす
          Loop
        End If
      Next
      DiffTxtFile = False
      MsgBox "行数が異なります。" & vbCrLf _
      & file2(0) & "=" & line_no(0) & vbCrLf _
      & file2(1) & "=" & line_no(1)
      GoTo label_escape
    End If
    
label_escape:
    ' ファイルを閉じる
    For i = 0 To 1
        Close #nFNO(i)
    Next
End Function