• ベストアンサー

VBAでテキストファイルの件数を調べる方法

Access2000のVBAで関数を使用して ファイルのパス名、ファイル名を指定すれば、 テキストファイルの件数を検索し変数に返す 関数はありませんか?     通常テキストファイルを開き1件1件カウントを 取っていけば件数を知ることは可能ですが、 数千レコードのテキストファイルが複数個存在 する場合処理スピードが遅くなるため何か 最適な関数はありませんか? よろしくお願い致します。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

こんにちは。maruru01です。 No.2の方のFileSystemObjectを利用する方法です。 行数 = CreateObject("Scripting.FileSystemObject").OpenTextFile(ファイルのフルパス, 8).Line 複数のファイルをカウントするなら、ファイルでループを回せばいいでしょう。 あと、FileSystemObjectの参考ページを紹介しておきます。 http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsobjFileSystem.asp

参考URL:
http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm,http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/l
tomo1012
質問者

お礼

一度FileSystemObjectを試してみたいと思います。 ご回答ありがとうございました

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

>ファイル名を指定すれば 「フォルダを指定すれば」では、ないのですね。 であれば、>テキストファイルの「件数」を検索し、と言うより、レコード数やファイルサイズを知りたいと言うことでしょうか? >通常テキストファイルを開き1件1件カウントを 取っていけば件数を知ることは可能ですが・・ 「件数」と言う表現が不適当な気がする。 >数千レコードのテキストファイル と「レコード」と言う言葉を使っているのだから、レコード数のことでしょうか。ファイル内のCRLFの個数のことでしょうか。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

EOFを利用するよりは、FileSystemObjectを利用する方が段違いに速くなります。

tomo1012
質問者

お礼

一度FileSystemObjectを試してみたいと思います。 ご回答ありがとうございました

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

テキストファイルが何行あるか? ということを調べたいのだと思いますが、 改行コードが何個あるか、実際にファイルを開いて読んでみないことには判りません。 (固定長レコードの場合は、ファイルサイズからレコード数が判るかも知れませんが) それは、なんらかの関数を使ったとしても同じだと思います。 処理が早いか遅いかは、ファイルアクセスによるので、なるべくファイルを全部一気に読む込む方法が早いだろうとは思います。