上級ユーザのプログラミング

もっと便利にExcelを使いたい場合、Excel関数⇒マクロ(記録)⇒マクロ(コード)まで覚えていく上級ユーザが稀に存在する。さらに極稀にAccessの近い方まで覚えてしまうユーザが存在する。まあ一番すごいと思ったのは、IISを使用して、ASP(Active Server Pages)まで作った人だ。
システム開発を経験していない、そのようなユーザが作成した部署内のみのExcelAccessツールとか、上記ASPをなおす機会が多いのだが、例外なくコーディングはアレだ。以下のような特徴を必ず備えている。

  1. 全く同じロジックを複数箇所で使用している(関数化されていない)。
  2. コード上に即値が多い。
  3. 関数名、変数名から役割が想像不可能。
  4. 字下げがない。
  5. コメントがない。
  6. 関数が戻り値以外の値をいろいろ変更する。
  7. エラーを考慮していない。

要はメンテナンス性を全く考慮していないのだ。その根底には動けばいいという思想が見える。
上級ユーザが作ったものはあくまでも、簡易ツールと割り切って、業務を依存させてはならない。その理由は、

  1. その上級ユーザがいつまでもそのツールをメンテしてくれるわけではない。異動してしまうかもしれないし、昇進してしまうかも知れないし、やめてしまうかもしれない。
  2. そのツールが予期しない動作をした場合、業務自体がとまってしまう。

ことがあげられる。
まあ単純に俺が面倒だからというのがあるんだが。