メモリ使用量を気にされていますので、そちらの方面で補足を。
テキストファイルの処理方法は大きく2パターンあり、それぞれメリット・デメリットがあります。
1. 少しずつ読み取って処理をする
ファイルの中身を少しずつ(例:一行ずつ)読み取り、新しいファイルへ書き出しを行います。
メリット
一度に読み込む量が少ないのでメモリ使用量が少ない。
デメリット
ファイル - プログラム間のやりとりのオーバーヘッドがあるため、2の方法より処理が遅くなりやすい。
(今回やりたいことの場合)一度別ファイルに書き出したのち、元のファイルと置き換えを行う必要がある。
VBAで読み込む方法
VBA組み込みのファイル操作ステートメント(Line Input)や、
Scripting.FileSystemObject
のOpenTextFile
でTextStreamを取得して、ReadLineなどで読み込むことで、少しずつファイルを読み込むことが出来ます。
2. 一度に全部まとめて読み込んで処理をする
ファイルの中身をまとめて読み込み、メモリ上で処理をして、ファイルへ書き出しを行います。
メリット
ファイル - プログラム間のやりとりが少なく、高速なメモリ上で処理を行えるため、処理が速い。
デメリット
メモリ上に乗りきらない場合は、処理できない、処理できても速度が非常に遅くなる。
分割したい場合は自分で処理をする必要がある(単純な行分割ならSplitでいいですが)
VBAで読み込む方法
VBA組み込みのファイル操作ステートメントでもまとめて読み込みは出来ますが、ややトリッキーな書き方になります。
そのため、TextStreamのReadAllメソッドを使用した方が無難です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/02/17 02:50