• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAよりCSVファイルの任意の行を取得)

VBAを使用してCSVファイルの任意の行を取得する方法

このQ&Aのポイント
  • VBAを使用してAccess2010でCSVファイルの2行目の文字列を取得する方法について説明します。
  • 大量の行を含むCSVファイルを指定し、VBAを使用して特定の行を取得する場合、文字列領域が不足するエラーが発生することがあります。
  • Runtime環境で実行する場合、CreateObjectは使用できません。代替の方法を探す必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> で、実際のCSVファイルは数十万行あるのですが、 このファイルをコピー、編集して3行とかにしたら、2行目はきちんと取り込めますか? 対象のCSVファイルの改行コードがVBAで想定しているものと違っていて、1行読み込むつもりが改行をきちんと見つけられずにファイル全体を読んでしまうとか?

naoto0216
質問者

お礼

neKo_deuxさま ご回答ありがとうございます。 また返信が遅くなり申し訳ございません。 実際のCSVファイルをコピーし、4行目以降を削除して試してみました。 『実行時エラー62 ファイルにこれ以上データがありません。』と表示されました。 ?buf で見てみると、1~3行目全てを読み込んでいるようですので、おっしゃる通り改行コードが見つけられずにファイル全体を読んでしまっているかと思われます。 当該CSVファイルを秀丸エディタで開いてみると、行末は「↓」になっているので改行はちゃんとされているように見受けられるのですが。。 なお、当該CSVファイルをExcelでいったん開き上書き保存したものを読み込んでみると、ちゃんと2行目が取得できるので、これによりVBAで想定している?改行コードになった・・・ということになるのでしょうか。 実運用上、わざわざExcelで開いて保存し直すのは手間がかかりますし、Excelの行の上限を超えるケースもあり得るので(Excelで開けない)、できれば元のCSVファイルは何も加工せずに読み込ませたいところです。 何か対策はございますでしょうか。 度々で申し訳ございませんが、ご教授頂けると幸いです。

naoto0216
質問者

補足

改行コードがLFということが判明しました。 調べたところ、LFだといったんデータ全てを読み込む必要があるようです。 今回読み込もうとしているCSVファイルは100MB程になるので、Line Inputでの読み込みは難しそうです。 別の方法を検討してみたいと思います。 また、投稿させて頂くことがあるかと思いますが、ご教授頂けると幸いです。 宜しくお願い致します。

関連するQ&A