長期運用のわな、データ量増加でパフォーマンスが落ちるExcelファイルの対処方法脱初心者! 1歩先を行くExcel VBA開発者のススメ(6)(2/2 ページ)

» 2018年03月07日 05時00分 公開
[高橋宣成]
前のページへ 1|2       

■データ量を抑えるためにすべきこと

 あなたが作成したVBAシステムが日々データを蓄積していくものならば、運用をすればするほど、図2のように、そのパフォーマンスが低下していきます。

 最悪の場合は、マクロ実行中にフリーズして計算結果やデータが損失することもあり得るでしょう。

図2 データ量とシステムのパフォーマンスの関係 図2 データ量とシステムのパフォーマンスの関係
Excel ファイル内のデータ量が増えると、システムのパフォーマンスが低下する

 まず考えるべき点としては、次のような工夫を凝らしてなるべくデータが増えないようにシステムを構築することです。

Check!

  • 重複データは保持しない
  • データの粒度を大きくすることを考える

 粒度とは、データの細かさのことを指します。

 例えば、「時」単位で集計しているデータがあれば、そのままシステムに取り込むと、最大で1日24件のレコードとなってしまいます。

 しかし、システムに取り込む際に「日」単位に丸めて取り込むことができれば、最大で1日1件のレコードで済みますよね。

 とはいえ、抑える努力をしたとしても、増えるものは増えていきます。

 そして、運用上の限界がいつか到来します。その場合には、次のことを考えねばなりません。

Check!

  • 一部のデータを破棄する
  • 一部のデータを外部に保管する

 外部に保管する場合は、図3のように複数のExcelファイルに分散して保管するという手法もよく見られます。しかし、それらのデータを集計したいときに不便です。

図3 データを外部Excel ファイルに分散して保管 図3 データを外部Excel ファイルに分散して保管

 一方で、図4のように、Accessなどのデータべースに保管するという方法があります。

 こちらであれば、より多くのデータを一元的に保管できます。Accessであれば、連携も容易ですし2GBまで保管することができますしね。餅は餅屋ということです。

図4 データを外部データベースに一元的に保管 図4 データを外部データベースに一元的に保管

 いずれにしても、データが蓄積されるシステムであれば、次の点を事前に検討をして、備えておくべきなのです。

Check!

  • どれほどのデータ量が、どれほどのペースで増えていくのか
  • いつ頃に運用上の支障が出てきそうか

書籍紹介

ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

高橋宣成著
秀和システム 1,800円

苦労してExcelVBAの基礎を学んだのに、期待したほど仕事が楽にならない。実務で使っているうちに、気がついたらVBAが重荷になってきている。あなたは、そんな悩みをお持ちではないでしょうか。本書は、ExcelVBAを実務で使うことを前提に、現場で求められる知識と知恵を解説します。バグを素早く解決する、運用中のマクロを都度メンテナンスする、コードを継ぎ足して機能を足すテクニックなど、現場で必要なノウハウがわかります。


注文ページへ


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。