あなたが作成したVBAシステムが日々データを蓄積していくものならば、運用をすればするほど、図2のように、そのパフォーマンスが低下していきます。
最悪の場合は、マクロ実行中にフリーズして計算結果やデータが損失することもあり得るでしょう。
まず考えるべき点としては、次のような工夫を凝らしてなるべくデータが増えないようにシステムを構築することです。
粒度とは、データの細かさのことを指します。
例えば、「時」単位で集計しているデータがあれば、そのままシステムに取り込むと、最大で1日24件のレコードとなってしまいます。
しかし、システムに取り込む際に「日」単位に丸めて取り込むことができれば、最大で1日1件のレコードで済みますよね。
とはいえ、抑える努力をしたとしても、増えるものは増えていきます。
そして、運用上の限界がいつか到来します。その場合には、次のことを考えねばなりません。
外部に保管する場合は、図3のように複数のExcelファイルに分散して保管するという手法もよく見られます。しかし、それらのデータを集計したいときに不便です。
一方で、図4のように、Accessなどのデータべースに保管するという方法があります。
こちらであれば、より多くのデータを一元的に保管できます。Accessであれば、連携も容易ですし2GBまで保管することができますしね。餅は餅屋ということです。
いずれにしても、データが蓄積されるシステムであれば、次の点を事前に検討をして、備えておくべきなのです。
ExcelVBAを実務で使い倒す技術
高橋宣成著
秀和システム 1,800円
苦労してExcelVBAの基礎を学んだのに、期待したほど仕事が楽にならない。実務で使っているうちに、気がついたらVBAが重荷になってきている。あなたは、そんな悩みをお持ちではないでしょうか。本書は、ExcelVBAを実務で使うことを前提に、現場で求められる知識と知恵を解説します。バグを素早く解決する、運用中のマクロを都度メンテナンスする、コードを継ぎ足して機能を足すテクニックなど、現場で必要なノウハウがわかります。
Copyright © ITmedia, Inc. All Rights Reserved.