VBA エラー 62「ファイルにこれ以上データがありません。」の原因と対処方法

VBAを実行するとVBA エラー 62「ファイルにこれ以上データがありません。」を見る機会はありませんか?

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

そんな中で悩むことは、

・VBA エラー 62「ファイルにこれ以上データがありません。」の原因はなに?
・VBA エラー 62「ファイルにこれ以上データがありません。」の対処はどうすればよい?

ではないでしょうか?

今回は、
VBA エラー 62「ファイルにこれ以上データがありません。」の原因とサクっとできる対処方法について
まとめます!



VBA エラー 62「ファイルにこれ以上データがありません。」はどんなエラー?

エラー62はOpenステートメントで開いたファイルの最終行を超えた(EOFに達した)行を指定し

読み込もうとする際に発生するエラーです。



VBA エラー 62の原因①「最終行を超えた行を指定している」

エラー62はOpenステートメントで開いたファイルの最終行を超えた(EOFに達した)行を指定し読み込もうとするけど
存在しないために発生するエラーです。

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

Sub エラーテスト1()
Close #1

Dim n As Integer
Dim temp As String

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

'とりあえず1~10まで追記する。
For n = 1 To 10
  Print #1, n
Next

Close #1


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

'追記した値を読み込む
Do While Not EOF(1)
    Line Input #1, temp
    Debug.Print temp
Loop

'ここでエラー
Line Input #1, temp

Close #1

End Sub

実行してみましょう。

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

10件値を追記して、11件目を読み込もうとしているため、

そんな行ないよ

と怒られているわけですね。

VBA エラー 62の原因①「最終行を超えた行を指定している」の対処方法は最終行を超えない参照はしない

EOF関数やLOF関数で最終行の判定を行い、それ以降では参照を行わないようにしましょう。

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

Sub エラーテスト1()
Close #1

Dim n As Integer
Dim temp As String

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

'とりあえず1~10まで追記する。
For n = 1 To 10
  Print #1, n
Next

Close #1


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

'追記した値を読み込む
Do While Not EOF(1)
    Line Input #1, temp
    Debug.Print temp
Loop

Close #1

End Sub

単純に余計な読み込み処理

Line Input #1, temp

を外しただけですが、エラーはでなくなりましたね。



さいごに

今回は、
VBA エラー 62「ファイルにこれ以上データがありません。」の原因とサクっとできる対処方法について
まとめました。

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

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

コメントを残す

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