VBA エラー 76「パスが見つかりません。」の原因と対処方法

VBAを実行するとVBA エラー 76「パスが見つかりません。」を見る機会はありませんか?

コードをみても誤った箇所がわからず途方に暮れる場合もあるかと思います。

そんな中で悩むことは、

・VBA エラー 76「パスが見つかりません。」の原因はなに?
・VBA エラー 76「パスが見つかりません。」の対処はどうすればよい?

ではないでしょうか?

今回は、

VBA エラー 76「パスが見つかりません。」の原因とサクっとできる対処方法

についてまとめます!

VBA エラー 76「パスが見つかりません。」はどんなエラー?

Open、MkDir、ChDir、RmDir などのファイル操作ステートメントで存在しないパス(ドライブやフォルダ)を指定したときに発生します。

VBA エラー 76の原因①「ファイル操作ステートメントで存在しないパス(ドライブやフォルダ)を指定」

ファイル操作ステートメントで存在しないパス(ドライブやフォルダ)を指定したため、ファイル操作ができないことが原因となります。

まずOpenステートメントでエラーを再現してみましょう。

Openステートメント

まずは存在しないファイルを開いてエラーを発生させてみます。

Sub エラーテスト1a()

    Open "C:\Temp\存在しないファイル.txt" For Input As #1

End Sub

はい、エラーはでましたが、
エラー53の方が発生しました。

パスはあっているけど、ファイルだけ存在しないという場合は

エラー53が優先されるという訳ですね。

エラー53の詳細についてはこちら。

VBA エラー 53「ファイルが見つかりません。」の原因と対処方法

では、ファイルを除いたパスを存在しないフォルダに指定してみます。

Sub エラーテスト1b()

    Open "C:\存在しないフォルダ\存在しないファイル.txt" For Input As #1

End Sub

はい、エラー 76がでましたね。

パスはあっているがファイルが存在しないという条件は

エラー 76に該当しないということを覚えておきましょう。

つぎにMkDirステートメントでエラーを再現してみましょう。

MkDirステートメント

MkDirステートメントはフォルダを作成するステートメントとなります。

MkDirはMake a Directoryの略のようですね。

以下、サンプルコードで、存在しないフォルダを中間ディレクトリに指定してみます。

Sub エラーテスト1c()

    'フォルダが作成されてしまうので、エラーは発生しない
    MkDir "C:\存在しないフォルダ\"

End Sub

ん~、エラーは発生しませんね。

ディレクトリを作るステートメントですので、パス末尾のフォルダが作られたためとなります。

当然の結果といえばそうですよね。

ではMkDirステートメントがどのような場合にエラー 76を発生させるかというと、

中間ディレクトリが存在しない場合です。

1階層増やし、パスに存在しないフォルダを指定してみます。

Sub エラーテスト1d()

    'パスが存在しないためエラーとなる
    MkDir "C:\存在しないフォルダ\存在しないサブフォルダ\"

End Sub

実行すると、

はい、エラー 76がでましたね。

VBA エラー 76の原因①「ファイル操作ステートメントで存在しないパス(ドライブやフォルダ)を指定」の対処方法はパスを存在するものに指定し直す

VBA エラー 76の原因①「ファイル操作ステートメントで存在しないパス(ドライブやフォルダ)を指定」の対処方法はパスを存在するものに指定し直しましょう。

特に、MkDirステートメントは誤ってパスを指定すると、パス末尾のフォルダ名が存在しない場合はフォルダを作成してしまうので、注意が必要です。

また、外部要因(アーカイブ運用、年次フォルダ管理など)でディレクトリ構成が変わったりする場合もありますので、不安がある方は絶対パスではなく相対パスで指定するのもよいかもしれませんね。

さいごに

今回は、

VBA エラー 76「パスが見つかりません。」の原因とサクっとできる対処方法

についてまとめました。

VBAのエラーはパターンを知っておくと発生した時に慌てず対応することができますので、

しっかりと対処方法を把握するようにしておきたいですね!



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です