10万件の大量データ取得速度
ExcelVBAは遅い?速い?
実際に10万件の大量データに対し、ADO接続vsFileOpenで抽出速度を比較してみました。
その他、連続シート作成や連続ブック保存などもデモ。
🌐XXXXXXXXXXXXXXXXXXXXXXXXXXX
速度デモについて、3つ処理をテーマに解説いたします。(1) 外部データ取り込み (2) 連続シート作成 (3) 連続ブック保存
ツール構成

4種類の外部データ ※データ件数の違い

Dummyテストデータ・フォーマット

【検証】(1) 外部データ取り込み

【検証】(2) 連続シート作成
上記の抽出結果シートを種類別にシート作成

↓たとえば、[都道府県]ごとの集計なら、最大47シートに振り分け

【検証】(3) 連続ブック保存
上記のシートを外部ブックに保存

まとめ~速度テスト結果
[取り込み方法]に応じた処理速度
- ADO接続 VS FileOpen ではADOが高速
(理由)
- データベースとしてのアクセス ADOは、Excelブックをデータベースのように扱えるため。Microsoft.ACE.OLEDB.12.0 などを介して、SQLのようなクエリを使って効率的に抽出できます
- 必要データのみ取得: 句で特定の列や条件に合致する行のみを取得するため。
- ADO を習得することで、VBA から SQL Server や Oracle などの本格的なデータベースにアクセスし、データの読み書きや操作を行うことが可能になります。それぞれのデータベースに対応した OLE DB プロバイダーと接続文字列を理解することが重要です。
(2) 連続シート作成 処理速度
- 「都道府県別」47シートの生成速度を評価
※主観的でもあり、PCスペック依存あり
(3) 連続ブック保存 処理速度
- 「都道府県別」47ブックの出力速度を評価
※主観的でもあり、PCスペック依存あり
おまけ~Changeイベント
[ダブルクリック]によるシート遷移~シート戻り
「操作性の向上」実現のための設計~ほかにも
