14年前にVBAでポリリズムいやポリモーフィズムした話

IT
スポンサーリンク

ポリリズムとポリモーフィズム

似てる!タイトルはただそれだけ。似てるけど違います。ポリリズムとポリモーフィズム。

Perfumeがこの世に出るきっかけとなった曲ですね。

スポンサーリンク

本題はExcel VBAでポリモーフィズムを使った話

むかーしむかし、かれこれ14年くらい前のお話じゃあ。
基幹系から出力されるCSVをベースに帳票を作成すると言うありがちが仕事がありました。
超大手SIerさんの下に入っていたので、超大手SIerさんが作成した機能設計書もあり、ちゃんとお客さんのレビューも完了していてFIXされていて、まぁそれ通りに実装すれば大丈夫って言う簡単なお仕事でした。FIXされていると言っても正常系だけで例外は実装時に対応してね!って内容でしたが(笑)。工期は2週間ほどの本当に簡単なお仕事でした。
Excelのフォームに出力する帳票フォーマット分のボタンがあって、出したいフォーマットを選択するとファイル選択ダイアログが表示されます。任意のCSVファイルを指定すると、CSVファイルを読み込んで、整形して帳票に出力するって仕様でした。もう12年も前の事だから記憶が曖昧だったりするんですが、CSVのフォーマットは同じで、帳票に出力する項目は帳票ごとに異なるみたいな、そんな感じだったんですよ。
実装方法は完全にお任せだったんで、どうすっかーって事で。VBAだったんで標準モジュールの中でゴニョゴニョするかなぁと思ったんですが、選択した帳票フォーマットで異なる処理で細かくIF文で分けて書くのが嫌だなぁと思い、悩んだ挙句にポリモーフィズムにしちまえ!ってやった記憶があります。
実際にVBAでポリモーフィズムってどうするの?って言うのは、以下を読んでください。

今振り返ると

今振り返ってみると、VBAでポリモーフィズムを実務で使うという貴重な経験をさせて頂きありがとうございましたって感じですね。14年経った今、blogのネタとして活躍している訳ですからね。まぁ、それ以外にも少しはお役に立つ事を。

IF文はプログラマーの敵である

極端な言い方をするとね。条件分岐が増えれば増えるほどテスト工数がかさみますもんね。ポリモーフィズムを活用して、呼び出し側(フレームワーク側)を作って叩いてしまえば、そこはバグの枯れ果てた世界ですからねぇ。再利用しまくりです。やはり書かないは正義です。書く量を減らして高度な機能を実現する。これこそ正義ですな。

継承がないと不便

やっぱり継承が無いと不便ですよって思う訳ですよ。今振り返るとね。
当時は自分がVB6脳だった事もあり、考え方として対応できていたんですけど、今振り返るとどうやって実装したっけ?とかなり「?」マークが浮かびます。特に継承が無いんで、ポリモーフィズムとなると各クラスに全部の処理組み込んだ?とか悩んでしまった。
そう、VBAには標準モジュールっていう特殊なもんが存在するんですよね。
標準モジュール側に組み込んだりと、かなり複雑怪奇な作りになっていたと思います。

仕事に対するスタンスは変わってない

14年前。2004頃ですな。インターネットに繋がってなかったなぁ。そんな中でVBAのポリモーフィズムを業務で使うとかチャレンジな事をしたなぁと思います。こうやって見てみると本当に仕事に対するスタンスが昔から変わっていないなぁと思います。楽しんだもん勝ちみたいな所もあるんですが、積極的に新しい事をやってみて、成功しても失敗しても自分の血肉に変えていく仕事のスタンス。うーん、苦労も多いけど楽しい事多いな。このスタンス(笑)

まとめ

まぁ、なんか取り留めのない話になってしまいました(え?いつも??)
昔にこんな実装したなぁと思いだして、あぁなんでこんな方法にしたんだろうと改めて振り返ってみたら、仕事に対するスタンスが昔と変わらんのだなぁと、自分自身で感動したもんで書いてしまいした。
言いたいことは、「何事においても新しい事にチャレンジし続ける事は人生において、とても重要な事だ」という事です。本当にこれですよ。チャレンジしないで安定を求めた途端に人は落ちていきます。その場に留まるという事は登り続ける事。何にしても登り続ける事で人生が豊かになると思えるのは素敵な事だと思います。これからも登り続けます!
と、最後は決意表明になりました。

最後までお付き合い頂きありがとうございました。

よろしければはてなブックマークやいいね!などお願いします。

 

また、ブログランキングに参加していますので、お帰りの際にポチッとして頂けると嬉しいです。

ブログランキング・にほんブログ村へ
にほんブログ村

コメント