今日も、他の人から持ち込まれたプログラムの書き換えを頼まれました。
結構ムダな処理が目立つので、分割したり再利用したり、
簡単にしたり・・・400行くらいあった雑なプログラムが100行ちょっとのコンパクトサイズに(°∀°)b
デバッグもぼちぼち調子よく、どこがダメだったのかがなんとなくわかるようになり、
3~4時間程度で従前のものよりも処理が早く、かつコンパクトな仕上がりに出来ました♪
試験データの評価用プログラムなので、数十万件規模のデータを取り扱うことが多く、
1回の処理で10分以上かかるようじゃそりゃストレスが溜まるってもの。
よくよく見ると、メモリの無駄遣いや、遠回りなアルゴリズムが目立つし、
余計な変数定義、分かりづらい命名規則も・・・。
どっかの大学生が作ったかのようなプログラム。
うーん、大学生のときの俺みたいなプログラムだな(笑)
今のところ、VBAしか使ってないけど、今回の書き換えを頼まれたプログラムは、
標準モジュールに、Subと書かれたマクロがたった1つだけ。
その中に、600行規模のコードがずらずらずら・・・。
読みづれぇ(笑)読みたくねぇしwwwww
似たような処理が繰り返されてるのに、分割再利用も検討されてねぇし・・・。
とりあえずコードを読み取って、やりたいことを機能別に
クラスモジュールに分割して再利用。
度重なる変更のためか、積もりに積もったムダな変数定義を削除し、
配列に出来るものは配列化。
途中、「ん?オーバーフローエラー?目立つところはないはずだが・・・?
キャストしなきゃならんのか?」とググって調べてみると・・・。
VBAの欠陥?みたいなエラーが(笑) ⇒詳しくはこちら。
最近もっぱら、VBAでデータ変換みたいな業務ばっかりやってるなぁ。
今の職場の通常業務がつまらなさすぎるから身が入らないし、
こういうもん作ってるほうがよっぽど俺の性に合ってる。
どんときやがれ!って感じです。
最近ちょっと興味があるのが、日報管理。
メールで毎日日報書いてるんだけど、あれって管理職はどうやって集計してんのかね?
毎日普通にメール読んで、手打ちしてるのかな?
でも日報なんて、社員それぞれが気の向くままに書いてるものが多く、
フォーマットを守れ!と言っても、個人の感覚のとらえ方が違うものが多く、
なかなか伝わらないもの。
んでもって、毎回そのメール読んで、手打ちしてるってなると・・・。
管理職、よくやるよな。俺だったら真っ先に改善を考えるのだが。
んで、どうやったら簡単に出来るのか?考えてみたんだ。
①ユーザーフォームでメール作成させるようにし、定型化させる。
これはVBAでもいいし、PHPでもかまわない。その他言語なんでもいい。
ユーザーフォームを作って、書いて欲しい項目を入力制限させれば、
強制的に定型化できるので、個人の感覚による書き方が減る。
②書いたものをテキストに置き換えてメールとして送る。
と同時に、フォーム別にXML文書とし、タグを項目別に取り付ける。
③毎日送られてくる日報メールをXML文書として扱い、
タグ別に項目を自動で振り分けるようにし、
毎日誰が何をどれくらいやったのか表にまとめるようにし、視覚化する。
④管理フォームに自動で書いてくれるので、メールを読むだけに集中できるし、
管理業務に追われることなく、自分の仕事に専念できる。
ざっと思いついたのだが、これで管理ファイル作成は自動化できるんじゃないのか?
毎日あのハゲ課長、「忙しい、忙しい」って呪文みたいに言ってるけど、
これで忙しくなくなるんじゃないのか?仕事奪っちまうぞ?
もちろん日報管理だけではない。
会議やミーティングの議事録も、他部門や他の会社に受け渡しする際も、
入力フォーマットが違うからわざわざ手打ちで入力してたりもするが、
入力フォームごと変換して自動入力するようにすれば、入力フォーマットに
左右される気遣いがなくなる。
ある程度書き手に融通の利くものが出来るはずだ。
うーん!こういう仕事やりたいなぁ!
俺の感覚だけど、「仕事を一生懸命頑張る」って、こういうことを考えるのを
「一生懸命」頑張りたい。