【VBAソレダメ】大量な変数宣言は危険!ENUM使いすぎに注意

今回は、長文となりがちなEnum(列挙型変数)大量記述によるリスクについて紹介します。


「システム開発に改修(仕様変更/追加)は、付きもの」

プログラム構造はシンプルで、ソース量は少ないほど、不具合リスクや改修リスクが低減できます。

みなさん、こんにちは。セルネッツ竹本です。

今回は、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」大量記述について、解説を行いました。

本記事が、品質向上において、ご参考お役立てになれば幸いです。


全国対応!お気軽にお問い合わせください