Excel VBAでデータ高速読み込み&書き込み(パターン1)
Excel VBAでデータ高速読み込み(パターン1)
Excel VBAでデータを高速に読み込んで一括でシートに転記します。
大きく分けて2パターン紹介するつもりです。
グルーピングロジックを追加したものも含めれば3パターン
パターン1
最初から読み込むデータ数と項目数がわかっている。(この記事)
パターン2
読み込み時に抽出処理(データの選別)を行うので読み込むデータ数がわからない
kitigai.hatenablog.com
パターン3
パターン2の応用でグルーピングで抽出条件を設定します。
グループ内に条件に合うデータが2つ以上あればグループをインプットすると言った具合です。
kitigai.hatenablog.com
どのロジックでも100万レコード読み込み&書き込みチャレンジ実施済みです。
処理の概要
通常のどの言語にでもあるようなStreamReaderを使用して1レコード(行)読み込み
セルに書き込むと言う風な方法にするとExcel VBAでは処理が遅く時間がもったいないです。
なので動的2次元配列を使用し読み込んだデータを2次元配列ごと一括でシートに転記します。
1.データ数調べる
2.データ数で2次元配列宣言する
3.読み込んだデータどんどん配列に追加していく
4.配列ごと一括で転記
こんな感じです。
ソース
最後の一括転記の部分で範囲+1ってやってるのは
配列が0から数えるのとシートがA1から始まるのの違いね
もうほぼ概要で説明したとおりのことやってるだけです
項目数とか適当だし最後に範囲指定してるRangeも適当な項目位置です。
参考サイト様
覚えてない