2
0
テーマ、知りたいこと
関数や特定のセルの値を参照する式が入力されているセルがあるファイルを、
VBAにて同条件の仕様を満たすものを作成したとして高速化できるものなのかを
有識者の皆様に意見いただければと思っております。
背景、状況
社内で多くのユーザが使用しているエクセルファイルなのですが、関数や参照セルが多いためか
動作が重くなることがあるようで軽量化・高速化の要望が出ています。
ネットのサイト等で高速化の情報を探していた際に、関数や条件付き書式を止めて
VBAで再現したほうが高速になるという記述を見つけ、今回VBAでの改修を検討している状態です。
今使用しているエクセルファイルには関数等の情報が入力されているセルが1シートに約2000セル、
1ブックに約10シートほどで1つのファイルになっています。
入力されている関数等の情報は
[=$○$○]といったように特定の別セルに入力された情報を表示させるものが約1割
IFで条件分岐で結果を表示させているセルが約9割弱
SUMIFやFINDなどその他が若干数存在しているといった状況です。
全て参照先は同シート内で他シートを参照することはなく、各シート毎に独立した情報になっています。
ユーザとしては入力された情報がリアルタイムに反映されることが望ましいようなので
VBAに置換した場合はWorksheetのChangeイベントやWorkbookのSheetChangeイベント
などで対応することになると考えています。
自分は然程VBAに明るくは無いのですが、類似の内容の物を1から作成した実績はあるので
VBAで今の仕様と同内容を実現することは可能だと思っています。
しかしVBAにするだけで本当に高速化の効果があるのかがわかっておりません。
感覚的な話で申し訳ないのですが、VBAにしても内部的にすることは基本同一で
Changeイベントなどで常にセル情報を監視しているという状況なので
高速化しないのではないか、せっかく作っても無駄骨にならないかという不安があります。
回答8件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。