次の例を見てみましょう。
消費税率が「0.08」から変更になった場合の修正箇所が、2箇所になってしまっていますね。これでは、変化に強いVBAとは言えません。
ここでは、次のように考えれば、2つの式の右辺の一部が同じ処理であることに気付くことができます。
.Range("B1").Value = cost + (cost * 0.08) .Cells(i, 2).Value = .Cells(i, 1).Value * 0.08
何らかの値に対して、0.08を乗算する処理という意味で一致していますから、まとめるチャンスです。
次のように書き換えてみましょう。
このようにすれば、消費税率に変更があったとしても、Subプロシージャは変更することなく、Functionプロシージャ内の1箇所を変更するだけで対応ができます。
今回は数式の一部をプロシージャ化していますが、複数行のブロックでもプロシージャ化が有効です。
積極的にまとめていきましょう。
ExcelVBAを実務で使い倒す技術
高橋宣成著
秀和システム 1,800円
苦労してExcelVBAの基礎を学んだのに、期待したほど仕事が楽にならない。実務で使っているうちに、気がついたらVBAが重荷になってきている。あなたは、そんな悩みをお持ちではないでしょうか。本書は、ExcelVBAを実務で使うことを前提に、現場で求められる知識と知恵を解説します。バグを素早く解決する、運用中のマクロを都度メンテナンスする、コードを継ぎ足して機能を足すテクニックなど、現場で必要なノウハウがわかります。
Copyright © ITmedia, Inc. All Rights Reserved.