VBA エラー 55「ファイルは既に開かれています。」の原因と対処方法

VBAを実行するとVBA エラー 55「ファイルは既に開かれています。」を見る機会はありませんか?

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

そんな中で悩むことは、

・VBA エラー 55「ファイルは既に開かれています。」の原因はなに?
・VBA エラー 55「ファイルは既に開かれています。」の対処はどうすればよい?

ではないでしょうか?

今回は、
VBA エラー 55「ファイルは既に開かれています。」の原因とサクっとできる対処方法について
まとめます!



VBA エラー 55「ファイルは既に開かれています。」はどんなエラー?

VBA エラー 55「ファイルは既に開かれています。」はファイルを開く処理を行う際にすでに指定ファイルが開いている状態であると出るエラーです。

5*系のファイル関連エラーの中で一番発生頻度の多いエラーですので、

うんざりしている方も多いのではないでしょうか。



VBA エラー 55の原因①「既にファイルを開いている」

エラー 55はOpenステートメントで開こうとしているファイルが既に開かれている場合に発生するエラーです。

例えば繰り返し処理やデバッグでOpenステートメントを再実行をした時などに発生します。

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

Sub エラーテスト1()

Dim n As Integer
For n = 1 To 2
Open "C:\Temp\正しいファイル名.txt" For Append As #1
Print #1, "追記"
Next

Close #1

End Sub

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

2回以上同じファイルを開こうとしているので、

すでにそのファイルは開いていてバッファに取り込んでいるよ

と注意されているわけですね。

VBA エラー 55の原因①「既にファイルを開いている」の対処方法はファイルを閉じる

エラー 55の原因①「既にファイルを開いている」の対処方法はファイルを閉じるようにしましょう。

繰り返し処理を行う場合は、Openステートメントを繰り返し処理に含めないようにします。

Sub エラーテスト1()

Dim n As Integer

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

For n = 1 To 2
Print #1, "追記"
Next

Close #1

End Sub

はい、エラー55が出なくなりましたね。

また、デバッグでOpneステートメントを含むプロシージャを再度実行する場合も発生しますので、

その際には前処理に

Close #ファイル番号

を加えるようにしましょう。

こんな感じです。

Sub エラーテスト1a()

Close #1 'デバッグ用
Open "C:\Temp\正しいファイル名.txt" For Input As #1

End Sub



さいごに

今回は、
VBA エラー 55「ファイルは既に開かれています。」の原因とサクっとできる対処方法について
まとめました。

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

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

コメントを残す

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