VBA エラー 52「ファイル名または番号が不正です。」の原因と対処方法

VBAを実行するとVBA エラー 52「ファイル名または番号が不正です。」を見る機会はありませんか?

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

そんな中で悩むことは、

・VBA エラー 52「ファイル名または番号が不正です。」の原因はなに?
・VBA エラー 52「ファイル名または番号が不正です。」の対処はどうすればよい?

ではないでしょうか?

今回は、

・VBA エラー 52「ファイル名または番号が不正です。」の原因とサクっとできる対処方法

についてまとめます!

VBA エラー 52「ファイル名または番号が不正です。」はどんなエラー?

Openステートメントで指定したファイルやファイル番号が不正である場合に発生するエラーです。

Openステートメントの構文は以下の通りです。

Openステートメントの構文

Open <ファイル名> For <モード> As #<ファイル番号>

ファイル名:ドライブ名、フォルダ名含めてファイルまでのパスを指定します。
モード:ファイル モードとなります。Append、Binary、Input、Output、Randomから指定します。省略するとRandomになります。
・Append:追加モード(既存データの後ろに追加)
・Binary:バイナリモード
・Input:シーケンシャル入力モード
・Output:シーケンシャル出力モード
・Random:ランダムアクセスモード
ファイル番号:1~511の範囲のファイル番号を指定します。

<ファイル名>、<ファイル番号>の指定が誤っていた場合に生じるエラーという形になります。

VBA エラー 52の原因①「Openステートメントのファイル名で不正文字を使用」

Openステートメントの構文から<ファイル名>のところで不正文字があるとエラー 52が発生します。

以下サンプルコードです。

Sub エラーテスト1()

Open "C:\Temp\*不正なファイル名.txt" For Output As #1

End Sub

はい、出ましたね。

 

VBA エラー 52の原因①「Openステートメントのファイル名で不正文字を使用」の対処方法は Open ステートメントでファイル名を再度指定

Open ステートメントで不正文字を除いたファイル名で指定しなおします。

VBA上にWindowsで使用できない以下の文字を使用したファイル名やフォルダ名をが無いか確認し、あればそれを取り除いてください。

\  円記号
/  スラッシュ
:  コロン
*  アスタリスク
?  クエスチョンマーク、疑問符
 ダブルクォーテーション
<>  不等号
|  縦棒

また、最大文字数255文字を超えたファイル名になっていたり、CON、AUX、COM1、COM2、COM3、COM4、LPT1、LPT2、LPT3、PRN、および NUL という名前は予約されているため、ファイルおよびディレクトリには使用できないので注意したいところです。

VBA エラー 52の原因②「無効なファイル番号が使用されている。」

Open ステートメントで無効なファイル番号が使用されている場合にエラー 52が発生します。

Open ステートメントのファイル番号は1~511の範囲での指定となりますが、それを超えていたり、0を指定していたり、
「a」など数字以外を指定した場合も同様にエラー52が発生します。

以下、サンプルコードです。

Sub エラーテスト2()

Open "C:\Temp\正しいファイル名.txt" For Output As #555

End Sub

はい、出ましたね。

VBA エラー 52の原因②「無効な名前または番号が使用されている。」の対処方法は

Open ステートメントのファイル番号を1~511の範囲で指定しなおしましょう。

さいごに

今回は、

・VBA エラー 52「ファイル名または番号が不正です。」の原因とサクっとできる対処方法

についてまとめました。

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

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



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

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








コメントを残す

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