Age Chart(満年齢表)
高橋の手帳2021年版の巻末にあったAge Chartを100歳以上のひともわかるように明治元年~の表にしてみました。昨年はすべて手入力で作成したが、2020年版は自動で年齢更新するようにした。
エクセルブックを開くと同時に開いた日の年で、1番目のシートを更新するようにしておきました。
https://aiddforecast.com/publish/AgeChart.xlsm
世界最高齢者が119歳らしいので、120歳まではありえるとし、121歳以上はグレーで反転表示するようにしておきました。”人生100年時代”と呼ばれて久しいですが、120歳以上となればギネス世界記録者となれるようです。
簡単な更新処理でしたが、いくつかのクラスとCollectionとIf文とFor~Next文くらいで作成できました。Collectionが必要だったかどうかは疑問です。
Excel VBAは、簡単と言えば、簡単です。開発タブのマクロの記録を開始し、手作業でやっていることを記録すれば、自動コードが作成されます。それを見栄え良くするだけでもできてしまいす。
一般にそうやればできるんだから、簡単だろう?2,3日でできるだろう!
と云われますが、業務でExcel VBAの開発案件に携わった方ならば、下記のように即答するはずです。
「かんたんなように見えますが、倍の1週間はかかりますよ!」
その理由は下記の如し。
1.手作業ほど臨機応変にできるものではない
2.コードに落とすにはそれなりに実行できる手順とエラー処理を考えなくてはならない
3.見やすい・読みやすいコードにしておく必要がある
ーーー>こうしないと後々、依頼元がコードを読んで改造ができない。手離れを良くしておきたい。
Excel-VBAで開発してほしいとの顧客からの要望は、
1.低費用(ローコスト)
2.短期納期
3.高機能(使いやすさ)
4.リーダブルコード <---暗黙の要求
くらいでしょうか。
1と2は言われて当たり前ですが、3も言われるようです。
4.は言われない事が少なくない。当たり前すぎて、言わなくてもわかっているだろ!!
という暗黙の要求(Silent Request)となっています。
この4の暗黙の要求がわかっていないととんちんかんのものを提供することになる。
機能は満たしていても、書いてあるコードが読めない。顧客は、保守までアウトソーシング(外部委託)する予定はないし、コストカットしたいのにさらなる新たなコストを作りたくない。
手作業でやっていた煩雑な処理をツールを使って、時間や手間を省くことを目的としています。どれだけ時間を節約できるようになったかが、ツールの評価となります。顧客が最初、ExcelマクロやExcel VBAを知らなかったとしても1,2時間ですぐにわかるようになります。読みやすいコードであれば、誰にでもすぐに読めるようになります。顧客側の管理職は、保守やカスタマイズは自社でやりたい。以後はアウトソーシング(外部委託)はしたくないが本音です。
それなのに、保守契約しましょう!!
などと持ちかけても断られて当然となります。
他の開発言語で開発しないような複雑な案件であれば、納品後1年ないし2年は保障期間として保守契約を締結するケースもあります。規模が大きければそうなります。
Excel VBAでちょっとしたツールでは、保守契約な~んて、ありえません(常識)。
Age Chart(満年齢表)は、病院や医院や新型コロナ大規模接種会場などで使用される年齢表に似て非なるものとなっています。満121歳以上は世界にいませんので、無駄な領域となります。しかしながら、 今後、Age Chart(満年齢表) の121歳以上が反転なしになるかもしれません。
人生100年時代と云われますが、平均寿命がさらに延長して、人生120年時代と呼ばれるようになるかもしれません。
たわいのない話のネタにしてもらってもよろしいのではないでしょうか。
開発者は誰もが一読はしている書籍です。ご参考までに!!
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
コメント