VBAを実行するとVBA エラー 62「ファイルにこれ以上データがありません。」を見る機会はありませんか?
コードをみても誤った箇所がわからず途方に暮れる場合もあるかと思います。
そんな中で悩むことは、
・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のエラーはパターンを知っておくと発生した時に慌てず対応することができますので、
しっかりと対処方法を把握するようにしておきたいですね!
コメントを残す