マクロ・イン・ワンダーランド
エクセルのバージョンを上げたら今まで使っていたシートが動かなくなってしまったので、今まで一日あたり十五分に圧縮されていた事務処理が八時間にまで膨れ上がってしまった。
アップグレードは総務の命令であるため、ダウングレードで解決することはできない。仕方がないので、新しいマクロを組むべく対策班が立ち上げられた。この部の事務員はマクロに明るくない連中ばかりだったので、ほとんどが現場班だった。
IT系の専門学校を主席で卒業したというウズミに、独学でそこそこマクロを組むことができる悟道。趣味でプログラミングをしている梓馬に加え、前の職場で事務員を兼業していたおかげで実はそこそこマクロが扱える夏海。最後に工業高校で情報系の学科を学んでいた事務の理緒ちゃんという、そうそうたるメンバーだ。
しかしその中の誰をもってしても、これまでのシートを再現することはできなかった。
作成者が数年前に退職していたのも、原因の一つだった。悟道曰く入社して数ヶ月でこのシートを完成させた期待の新人だったらしいが、それからすぐに辞めてしまったという。副社長と常務の出張先を耳にしてしまったという噂があるらしいが、真相は定かではない。
しかして数年越しにそのアルゴリズムにメスが入れられたわけだが、これがまた良くも悪くも凄まじいシロモノだった。
まず変数名が "Hikakuyou" だとか "Tesu" だとかそんなのばっかりでスコープもわかりにくい。加えてコメントもざっくりとしか記述されておらず、多くてブロックごとに一行、少ないところだとモジュール一つがまるごとノーコメントだったりする。入れ子は八重ぐらい日常茶飯事だし、それをGotoで何度も使いまわしていることもしばしば。ラベル名は数字。至る所にCallが散りばめられている。
その上、どんな技術を使っているのかよくわからないが、処理内容のわりに行数がずっと少ないのだ。ウズミが言うには、コード量が想定の半分ほどしか無いという。まあ、それでも多いのだが。
これが今の今まで一度も不具合を出さなかったと言うのだから、凄いものだ。
こんなものを解読していたら、他の業務に支障が出てしまう。最初は動かなくなった理由を探ってそこだけ修正しようと思っていたのだが、コードが読めなければそれもかなわない。
仕方がないので一から作り直すことにしたのだが、これがまた困難を極めた。
普通に作ると膨大な量になってしまうことは目に見えていたので、なんとか処理を短縮しようと四苦八苦。結局三日かかっても何一つ案が浮かばなかったので、量には目をつぶって組み始めることにした。
だが、それが完成することはなかった。
誰が何度改良しても、例外処理が上手く行かなかったのだ。前のシートを参考にしようにも、その処理がどこで行われているのかがわからない。
その例外処理を除外すると深刻なエラーを吐くので、最終的にはお手上げ状態。担当外である阿奈ちゃんが毎日四時間残業を増やして膨れ上がった業務の処理を手伝っていたが、彼女の疲労も限界に達しようとしていた。
結局、上席が人事に頼み込んで、事務員を一人寄越してもらうことにした。
当初、人事は他部署で持て余しているクソ無能をこちらに投げるつもりだったようだが、それを察知した悟道が事前に釘を差して阻止。なんとか無難な……いや、優秀な人材を確保することができた。
「幹康 広見です。よろしくお願いします」
以前は営業所属だったらしい。事務専業の男性社員は、この会社だと珍しい。
急な人事異動だったので、営業の方も引き継ぎやら何やらでてんやわんやだったようだ。まあ営業にはいつも苦労をかけられているのでこれぐらいはいいだろう。
「久し振りだねー」
そう言いながら彼の肩を叩いたのは、意外なことに梓馬だった。どうやら彼らは同期らしく、そこそこ仲が良いようだ。
しばらく彼らが談笑する中、周囲は沈黙を貫いていた。その要因は、広見の容姿にある。
「とても事務員には見えない……なにかスポーツやってたの?」
遂にそこを突いたのは、勇二だった。
そう、広見はとてもガタイがいいのだ。タッパも一八五センチあるらしい悟道をわずかに上回っているし、肩幅は夏海の倍に迫ろうとしている。ヤクザのような顔つきも相まって、どちらかと言えば、オフィスよりも工事現場で働いていそうなタイプだ。
しかし次の発言は更に衝撃的だった。
「高校ではラグビーをやっていたのですが、大学では何も……」
つまり、この体型は高校時代で既に完成されていたというのだろうか。それだけでも意外だが、それ以上に彼の口調に驚かされた。
「大学は何やってたの?」
「ボランティア部を……」
なんだこの、今にも消え入りそうな弱々しい口調は。お前本当にマッチョか。その筋肉はハリボテなのか。
ボランティア部、というのは別に意外でもなんでもなかった。学生ボランティアなんかは汚い大人の手によって定期的に酷使されるらしいので、それなりの筋肉が必要だという。ラジオで言ってた。
それよりもこの弱々しい口調だ。マッチョというのは、もっとこう、堂々としていないといけないのだ。神をも超えて悪魔をも倒す勢いでなければいけないのだ(偏見)
……年下をいじめてもあまり面白くないので、これぐらいにしておこう(何もしてない)
なんにせよ、彼が優秀な事務員であることは確かだ。これで阿奈ちゃんが頭痛薬を空瓶にする必要がなくなる。マクロ開発のせいで滞っていた工事も進められるだろう。
全ては丸く収まった。めでたし、めでたし。
※
翌日、夏海は久しぶりにVBAのテキストを引っ張りだしていた。
たまの休日にわざわざこんなものを引っ張りだしたのは、引っかかる部分があったからだ。
未完成に終わった例外処理。昨日寝る前に思い出したのだが、前の職場で似たような処理を行ったことがあった。
それはこの教本を参考にして作ったはずだ。つまりこれを読めば、対処法が記されている可能性がある。
目次と格闘すること数分。それっぽい見出しを見つけたので、開いてみる。ビンゴだった。
パソコンを立ち上げて、試しに組んでみる。完全再現とは行かないが、理論上はこれが成功すればあのシステムも動くはずだった。
「……あ」
動いた。
動いてしまった。
「……見なかったことにしよう」
落とし穴は、いつだって意外なところに存在する。
そもそも今回のメンバーで、誰ひとりとしてVBAの専門教育を受けていた者は居ない。経験があったり、他の言語を学習していたりと、その程度のメンバーなのだ。
これもまた、職場ごとにオーパーツじみた秘伝のソースが存在する所以だろう。
このことは、夏海の記憶の奥底に封印しておくことにした。