「システム開発に改修(仕様変更/追加)は、付きもの」
プログラム構造はシンプルで、ソース量は少ないほど、不具合リスクや改修リスクが低減できます。
みなさん、こんにちは。セルネッツ竹本です。
今回は、Enum(列挙型変数)大量記述によるリスクについて紹介します。
◆プログラムソースは「シンプル化」が安全かつ保守性が高い訳
冒頭の画面キャプチャは、大量の変数宣言の例です。1,000行以上の記述があります。
何故、これほどの型の宣言が大量記述されてしまったのでしょうか。
この開発案件では、入力で使用するExcelブックが、計4ファイル分✕各200フィールドあることが背景のようです。
さらに、固定値の「Const定数宣言」だけで、1000行ほど記述があります。
1.入力Excelブック1.xlsx (約200フィールド)
2.入力Excelブック2.xlsx (約200フィールド)
3.入力Excelブック3.xlsx (約200フィールド)
4.入力Excelブック4.xlsx (約200フィールド)
このような記述には、2つのリスクがあります。
1. フィールド名がハードコーディングされ可視化がされてない
2. 1000行近い命名に工数をかけ、可読性を下げている
例えば、上記のような記述を習慣化してしまうと、官公庁によくある入札案件(人口ビッグデータ)などでは、1ブック1シート2,000フィールドも珍しくありません。
もしも、入力が5ファイルあれば、10,000個の変数宣言という構造は、リスクが高まります。
ExcelVBAは、データベースではなく、二次元そのままの表計算ソフトなので、フォーマット定義は、専用シートによる全フィールド可視化によって、大幅な開発工数の低減と、記述の低減ができます。
◆フォーマットをシート展開で可視化する5つのメリット
全ファイル、全フィールドをワークシート上で俯瞰できる設計には、5つのメリットがあります。
(項目名の外出し可視化メリット)
1. 項目の移動入れ替え
2. 項目名の変更
3. 項目の差し込み挿入
4. 項目の削除
5. フォーマット変更
また、変数名についても、Public=P_、Dim=D_始まりと標準化することで、変数名の一括置換をはじめ、属性の識別も容易になります。
何よりも、コーディング記述数が激減するため、バグのでにくい、分析のしやすい安全性の高い記述になります。
◆ExcelVBAは、Excelありきの開発言語です
他の言語とは違い、Excelそのもののワークシートに着目し、それを有効活用することで、大幅にシンプル化が図れます。
弊社では、標準化ガイドラインで、ENUM使用は50行まで、としています。
慣れてくると全く使用はみられなくなり、「プログラム依存度」も低減され、可読性が高まるため、「VBAプログラミン初心者」にとっても、解読しやすく、今では誰もが改修を行える体制を構築しています。
今回のテーマは、「ENUM」大量記述について、解説を行いました。
本記事が、品質向上において、ご参考お役立てになれば幸いです。