Sub Sample1()
''C:\Sample.txtは読み取り専用属性
Open "C:\Sample.txt" For Append As #1
Print #1, "tanaka"
Close #1
End Sub

OpenステートメントやChDirステートメントなどで指定したパスやファイルの形式が不正のとき発生します。
あるいは、上のコードのように、読み取り専用ファイルをOutputモードやAppendモードで開こうとするときにも起こります。
ファイルの属性を調べるには、GetAttr関数を使います。
Sub Sample2()
''C:\Sample.txtは読み取り専用属性
Dim Atr As Long
Atr = GetAttr("C:\Sample.txt")
If Atr And vbReadOnly Then
MsgBox "読み取り専用です"
Else
Open "C:\Sample.txt" For Append As #1
Print #1, "tanaka"
Close #1
End If
End Sub
パスやファイル名が不正のときに、このエラーが起こりますが、パスやファイルの書式が正しくても、存在しないパスやファイルを指定したときには「パスが見つかりません」のエラーが発生します。よく似たエラーメッセージですが、こちらの方が起こりやすいエラーです。
「パスが見つかりません」の解説Windows VistaまたはWindows 7の環境ではユーザーアカウント制御の設定によっては、Cドライブのルート(C:\)へのアクセスが制限されます。その状態では、次のコードを実行すると「パス名が無効です」エラーが発生します。
Sub Sample3()
Open "C:\Sample.txt" For Append As #1
Print #1, "tanaka"
Close #1
End Sub
コードは、どこも間違っていません。ただ、ユーザーアカウント制御によってCドライブのルート(C:\)へのアクセスが制限されるため、エラーになります。
このエラーを回避するには、Cドライブのルートにアクセスしないか、ユーザーカウント制御の設定を変更します。
なんだかなぁ・・・