ファイル名または番号が不正です。(エラー番号:52)


Sub Sample1()
    Dim buf As String
    Open "C:\Sample.txt" For Input As #1
        Line Input #2, buf      ''←2 じゃなくて 1
    Close #1
End Sub

Openステートメントで開いたファイルは、それ以降、Openステートメントで指定したファイル番号で特定します。そのファイル番号を間違えると、このエラーが発生します。

一般的なマクロでは、同時に大量のファイルをOpenすることは希でしょう。開いても、せいぜい1~3個くらいかと。しかし、ファイル番号を間違えると、誤ったデータを操作してしまいますから、ファイル番号の指定には注意が必要です。複数のファイルを扱うときは、次のように定数として定義するのも手です。

Sub Sample1()
    Dim buf1 As String, buf2 As String
    Const UserAddress As Long = 1
    Const UserName As Long = 2
    Const UserData As Long = 3
    Open "C:\Sample1.txt" For Input As UserAddress
    Open "C:\Sample2.txt" For Input As UserName
    Open "C:\Sample3.txt" For Append As UserData
        Do Until EOF(UserAddress)
            Line Input #UserAddress, buf1
            Line Input #UserName, buf2
            Print #UserData, buf1 & ":" & buf2
        Loop
    Close UserData
    Close UserName
    Close UserAddress
End Sub

あまり頻繁にやる操作ではありませんけど。