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
あまり頻繁にやる操作ではありませんけど。