機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > VBAのエラー

パス名が無効です



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の場合


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ドライブのルートにアクセスしないか、ユーザーカウント制御の設定を変更します。
なんだかなぁ・・・



このエントリーをはてなブックマークに追加