- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vistaでエクセル2007を使用しています。)
VistaでExcel2007を使用する際に発生した実行時エラーの解決方法
このQ&Aのポイント
- VistaでExcel2007を使用している際にVBAプログラムを作成したところ、実行時エラー62「ファイルにこれ以上データがありません」というエラーが発生しました。
- 原因として、テキストファイルを読み込む際に、一度に全てのデータを読み込むのではなく、1バイトずつ読み込み、EOF(ファイルの終端)まで繰り返す必要があります。
- また、テキストファイルのサイズ(LOF)と実際のデータの長さが異なる場合もありますので、必要に応じてデータの長さを確認することが重要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 文書全体, lof(1) の違い 全角(2バイト系)データがあれば食い違いがでるかと思います。 lof(1) …総バイト数 文書全体 …総文字数 もし全角があるとしたら ? lenb(strconv(文書全体,vbFromUnicode)) ;lof(1) で、合うと思います。 【ファイル全て読む場合に便利なクラス】 以下の方が処理が早くなります。 Set fso = CreateObject("Scripting.FileSystemObject") Set objinfile = fso.OpenTextFile(Range("a1").Text) 文書全体 = objinfile.ReadAll objinfile.Close
お礼
調べてみたら、無いはずの英文にしっかりと全角文字が混ざっていました。外国人から渡された英文だったのでうかつでした。「思い込みはデバッグの天敵」ですね。 まだ全てを確認していませんが、おかげさまで解決の糸口がみつかりました。 ありがとうございました。