今日は、会社でとあるExcelファイルの改修をした。
このファイルは、納期予定一覧から情報をとってきて、工程内で使用する書類を自動生成するというもの。
こういうものは、当然VBAで書いてあるものだと思ってソースを見てみるも、数行のコードしか無い。
どうやらVBAは印刷だけで、後は全部ワークシート内の関数で構成されているらしい。
非プログラマが作ったExcel自動化というのは、こういう類が結構多い。VBAを使わない自動化というのは、可読性が全く無いのでよろしくない。
動いているうちはいいけど、動かなくなったら大変だ。
そういうわけで、正攻法でこのファイルの改修に取り組むのは、控えめに言っても地雷原に地雷探知機無しで突っ込むような暴挙であって、無茶だ。
僕は諦めて、結果が出たタイミングでVBAを使って割り込み、強引にデータを書き換えることにした。
これなら、おそらく関数だらけのからくり人形みたいなロジックも、狂うことは無いだろう。
今日はそんなExcelファイルを改修しながら、つくづくExcelはプログラミングには向いていないソフトだなと思った。
もっと自由度を低くして、プログラマがプログラミング言語の仕様に沿わざるを得ないような仕組みにしないと。
何でもかんでもExcelでやる文化は、どうにかならないものか。