VBAを実行すると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のエラーはパターンを知っておくと発生した時に慌てず対応することができますので、
しっかりと対処方法を把握するようにしておきたいですね!
コメントを残す