めんどくさいことは全部Excelマクロに任せちゃえ。
古き良き時代の検査機器が吐き出す、よくわからない拡張子のテキストデータを処理するため、僕はExcelマクロを産み出しました。
マクロのお仕事は、下記の通り。
- テキストの羅列から検査データ部分を抜き出し、正規化してセルに書き出す
- 抜き出したデータをもとにグラフを描く
- Keyとなるデータ(例えば加圧検査なら荷重のピークとか)を取得する
自分だけが使っているうちは問題ありませんでした。ただ、他の人がマニュアルで上記の作業をしているのを見かけて、試しにどうぞ…とマクロを渡しまして。それを幾度か繰り返すうちに、そこそこの人が僕のマクロを使うようになってしまいました。私的利用のクソExcelマクロが闇Excelマクロへと変貌したわけです。
で、ここからが問題。
もともと、自分が分かればいいや、ってモチベーションで作ったマクロ。いきあたりばったりの継ぎ接ぎコーディングで作られており、ロバスト性に乏しいです。機器の出力設定が変わったり、データのブレに負けたりで、度々エラーを吐くのです。すると、問い合わせが来るわけです。それを一人で対処するのが、面倒なわけです。
特に最近は僕も同僚もリモートワークが増えてます。エラーの状況を直接確認できない場合は解析も時間かかるし、機器起因だと現場にいないと解決できなかったりで。つまり、面倒なわけです。
そういう面倒に対応していくうちに、怖い想像が頭をよぎるようになってきました。エラーを吐かずに間違った動作で完了し、ユーザーがそれに気が付かなかったら…。例えばKeyデータの取得をミスって、その値を信じてしまったとしたら。 自分はそういう現象が起こり得ると理解していて、値の妥当性を確認できるようにグラフを出力してるわけですが、その辺りの前提が抜けている人がいるかも…。僕の説明を経ずにマクロを使う人がいたことで、このケースを恐れるようになりました。うーん、やってしまった感。
自動化の記事に対してはてブのコメで「で、運用は?」とのツッコミをよく見かけますが、ははぁつまりこういうことなんだな。納得した次第です。問題を吸い上げて、アップデートして、それを周知させる仕組みは、何らかのツールを使う上で必要です。
で、仕組みを作るとなるとマネージメントを巻き込んでの、なかなかに面倒そうな動きが必要になるわけで。ちょっとした業務自動化のためにそこまで頑張れるかと言われると、自分はそこまでの情熱が無く。
闇マクロは闇マクロらしく、やはり自分だけで閉じているのが一番いいのかもしれません。