東京在住のSIerです。趣味でもITに関することをいろいろとやっていますので、ノウハウなどの備忘録を掲載していきたいと思います。管理人VBAでADODBの1行読み込みが遅い時の対処法TweetEXCELのVBAでUTF8のファイルを読み書きするマクロを作る場合はADODBを使うと思いますが、ADODBの1行読み込みを行数の多いファイルに対してループ処理すると、処理がかなり遅くなったのでその時の対処法を紹介します。単純な1行読み込みのコードと処理速度ADODBを使ってファイルを1行ずつ読み込むコードは以下のようになります。以下のコードでは、ファイルを1行読み込み別のファイルに書き込む処理を行数分ループ処理しています。adSaveCreateOverWritecsvIn.ClosecsvOut.Close実際に50万行(70MB)のファイルを上記コードで処理してみたところ、50秒ほどかかりました。時間と処理件数のグラフは以下のようになっていました。後ろの行になるほど、1件当たりの処理時間が長くなっていきます。なり使い物にならなくなってきます。一定サイズごとにファイルを読み込む一定サイズごとにファイルを読み込むように処理を変更することで、高速化を行うことができます。サンプルコードは以下のようになります。以下の例では2048文字を取得するループを繰り返し1行ごとの処理を実装しています。)で処理することができました。処理時間も線形となり、後ろの行でも処理時間は一定となっています。参考までにですが、ファイルを一括で読み込み改行コードで区切る処理に変更して時間を計測しようとしましたが、この場合いくら待っても処理が終わらないぐらい遅くなってしましました。サンプルコードは以下となります。コメントをキャンセルメールアドレスが公開されることはありません。