検索
連載

税率変更にも簡単に対応、無駄を減らすコーディングのコツとは脱初心者! 1歩先を行くExcel VBA開発者のススメ(5)(2/2 ページ)

消費税率変更のように、「将来変わる可能性のある数値」がコード内に複数含まれている場合、修正に時間がかかってしまいます。メンテナンスを楽にするコーディングのコツとは何でしょうか。

Share
Tweet
LINE
Hatena
前のページへ |       

■同じ処理をプロシージャ化する

 次の例を見てみましょう。

消費税額の計算を1 箇所にまとめられない場合

 消費税率が「0.08」から変更になった場合の修正箇所が、2箇所になってしまっていますね。これでは、変化に強いVBAとは言えません。

 ここでは、次のように考えれば、2つの式の右辺の一部が同じ処理であることに気付くことができます。

.Range("B1").Value = cost + (cost * 0.08)
.Cells(i, 2).Value = .Cells(i, 1).Value * 0.08

 何らかの値に対して、0.08を乗算する処理という意味で一致していますから、まとめるチャンスです。

 次のように書き換えてみましょう。

消費税額の計算をFunctionプロシージャ化

 このようにすれば、消費税率に変更があったとしても、Subプロシージャは変更することなく、Functionプロシージャ内の1箇所を変更するだけで対応ができます。

 今回は数式の一部をプロシージャ化していますが、複数行のブロックでもプロシージャ化が有効です。

 積極的にまとめていきましょう。

書籍紹介

ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

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

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


注文ページへ


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る