表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
異世界転生したけど、スキルが『Excel』だけだった。でもマクロ組んだら魔法より強かった件  作者: まこーぼ


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

1/51

第1話:プロローグ 〜セル結合された深夜の虚無と、#REF!な意識〜

タイトル:異世界転生したけど、スキルが『Excel』だけだった。でもマクロ組んだら魔法より強かった件


第1話:プロローグ 〜セル結合された深夜の虚無と、#REF!な意識〜


 カチャ、カチャ、カチャ、ッターン。


 乾いたプラスチックがぶつかり合う音が、静まり返ったオフィスに虚しく響いた。

 深夜三時四十二分。

 東京都港区にある雑居ビル、その五階。株式会社「フロンティア・ソリューションズ」の制作部フロアには、もはや空調の送風音と、俺――工藤聡くどう・さとしが叩くキーボードの打鍵音しか存在していなかった。


 蛍光灯の白い光が、じりじりと網膜を焼いている気がする。

 瞬きをするたびに、まぶたの裏側で砂粒が擦れ合うような不快な摩擦感があった。ドライアイ用の目薬は三時間前に空になった。ゴミ箱に投げ捨てたピンク色の小さなプラスチック容器が、カランと虚しい音を立てたのを今でも鮮明に覚えている。


 俺は充血して霞む視界を、強引にピント調整しながら、目の前の二十七インチモニターに映し出された「それ」を睨みつけた。


 Microsoft Excel。

 緑色のアイコンでおなじみの、表計算ソフト。

 現代のビジネスパーソンにとっての武器であり、盾であり、そして時に、魂を縛り付ける鎖でもある代物だ。


 画面を埋め尽くしているのは、無機質な数字と文字列の羅列だった。

 A列には「商品ID」、B列には「SKUコード」、C列には「仕入先名称」……それがZZ列まで続き、行数は既に六万五千を超えている。

 営業部が提出してきた、このクソみたいに巨大なCSVデータ。前任者が残した秘伝のタレのように継ぎ足され、複雑怪奇にスパゲッティ化したVBA(Visual Basic for Applications)のコードが、このデータを読み込むたびに悲鳴を上げているのだ。


「……なんで、全角と半角が混在してんだよ……」


 俺の口から漏れたのは、言葉というよりは、肺の中に溜まったおりのような溜息だった。

 喉が渇いている。舌が上顎に張り付くような感覚。

 デスクの左端に置かれた、飲みかけの缶コーヒーに手を伸ばす。ぬるくなった「微糖」の液体を口に含むと、人工的な甘さと劣化したコーヒー豆の酸味が、荒れた胃壁に染み渡るように落ちていった。不味い。けれど、これが今の俺の生命維持装置の燃料だ。


 マウスホイールを回し、14238行目のD列を確認する。

 本来なら「2023/10/01」と日付形式で入力されていなければならないセルに、「10月1日頃」という文字列が入力されていた。

 このたった一つの、人間の曖昧さを許容した入力ミスのせいで、俺が組んだ集計マクロは『型が一致しません』という無慈悲なエラーウィンドウを吐き出し、処理を中断していたのだ。


 俺は眉間に深い皺を寄せながら、ショートカットキーを叩いた。

 Ctrl + H。置換ウィンドウがポップアップする。

 指先は思考するよりも早く、慣れ親しんだ動きでキーボードの上を滑る。まるでピアニストが愛する楽曲を奏でるように、あるいは外科医がメスを振るうように、俺は淀みなく入力していく。


 この会社に入って七年。

 二十二歳で新卒入社してから二十九歳になる今日まで、俺がやってきたことの九割は、Excelとの格闘だったと言っても過言ではない。

 営業の数字管理、経費精算、在庫リスト、果ては社員の座席表や忘年会の出欠確認まで。この会社ではあらゆる事象が「.xlsx」という拡張子の中に封じ込められていた。そして、それを御せるのは社内で俺ただ一人だった。


「工藤さん、Excel詳しいですよね?」

「工藤ちゃん、このマクロ動かないんだけど見てくれる?」

「悪い工藤、これ明日までに集計頼めるかな。君なら魔法みたいにパパっとできるでしょ?」


 魔法。

 彼らはそう呼ぶ。

 俺が数時間かかる手作業を一瞬で終わらせる関数を組むたびに。

 膨大なデータの中から特定の条件だけを抽出してグラフ化するたびに。

 彼らは、その裏にある論理構造も、構文のエレガントさも、エラー処理の泥臭い工夫も理解せず、ただ結果だけを見て「魔法」と呼んで片付ける。


 ふざけるな。

 これは魔法なんかじゃない。論理ロジックだ。

 正しい入力に対し、正しい処理を行えば、必ず正しい出力が返ってくる。

 この世界で唯一、裏切らない絶対的な法則。それが俺にとってのExcelだった。人間関係のような曖昧さも、理不尽な上司の気分による仕様変更も、ここにはない。あるのは0と1、TRUEとFALSEの世界だけだ。


 俺は「10月1日頃」を「2023/10/01」に修正し、再びエディタ画面(VBE)を開いた。

 黒い背景に色分けされたコードが並ぶ。

 Sub DataProcessing_Main()

 このプロシージャが、俺の今夜の敵であり、相棒だ。


 変数の宣言部分を見直す。

 Dim ws As Worksheet

 Dim lastRow As Long

 Dim i As Long

 無駄のない記述。美しさすら感じるインデント。

 配列を使って処理速度を高速化させている。画面更新を止める Application.ScreenUpdating = False も忘れていない。完璧だ。これなら、六万行のデータ処理も三秒とかからないはずだ。


 俺は震える指先で、F5キー(実行)の上に人差し指を添えた。

 これを押せば、処理が走る。

 このデータが整理されれば、明日の朝一の会議資料が完成する。そうすれば、俺は家に帰れる。シャワーを浴びて、泥のように眠れる。


 トクン。


 不意に、心臓が奇妙な音を立てた。

 まるで、胸郭の中で誰かが小さなノックをしたような、そんな違和感。

 直後、強烈な圧迫感が胸の中央から広がっていった。


「……あ、れ?」


 声が出なかった。空気が漏れる音しかしない。

 視界が急激に狭まっていく。

 まるでカメラの絞りを極限まで絞ったように、周囲の景色が暗黒に塗りつぶされ、中央にあるモニターの光だけが、やけに鮮烈に輝いて見えた。


 セルのグリッド線。

 あの薄い灰色の格子模様が、網膜に焼き付いて離れない。

 縦と横。行と列。

 世界が、格子状に分解されていくような錯覚。


 オフィスの天井の模様が、Excelのセルに見える。

 散らばった書類の山が、未整理のデータ群に見える。

 自分自身の身体さえも、一つのオブジェクトとして認識され始めていた。


 ――ああ、これはまずい。

 思考の片隅で、冷静な自分が警鐘を鳴らしている。

 過労だ。睡眠不足だ。カフェインの過剰摂取だ。栄養失調だ。

 要因はいくらでも挙げられる。それらが複合して、今、Runtime Error を引き起こそうとしている。


 身体が椅子から滑り落ちそうになる。

 重力が数倍になったかのように体が重い。

 だが、俺の意識はまだ、画面の中のカーソルに固執していた。


 まだだ。

 まだ、実行していない。

 このマクロを走らせなければ、仕事は終わらない。

 中途半端な状態で終わらせるなんて、俺のプライドが許さない。

 エラーのまま放置されるなんて、我慢ならない。


 薄れゆく意識の中で、俺は渾身の力を振り絞り、右手の人差し指に神経を集中させた。

 指先が、冷たいキートップに触れている感触だけが、世界との唯一の繋がりだった。


 カチッ。


 F5キーが押し込まれる、確かな感触。

 その瞬間、画面上のカーソルが砂時計ローディングマークに変わった。

 処理が始まったのだ。


 プログレスバーが伸びていく。

 青いバーが、左から右へ。

 10%……20%……30%……。


 俺の視界もまた、そのバーの進行と同期するように白く染まっていった。

 心臓の鼓動が、CPUのクロック周波数と同期していく。

 ドクン、ドクン、という生々しい拍動が、いつしか電子的なビープ音のような、規則正しいリズムへと変質していく感覚。


(……配列処理、完了……次はピボットテーブルの生成……)


 頭の中で、コードが一行ずつ実行されていくのがわかる。

 肉体の感覚は消え失せても、論理の構築だけは鮮明に残っていた。

 俺はもう、自分自身が工藤聡という人間なのか、それとも module1 というプログラムの一部なのか、区別がつかなくなっていた。


 50%……60%……。


 身体が床に倒れ込む衝撃があったはずだが、痛みは感じなかった。

 ただ、床のカーペットのザラザラとした感触が、頬に伝わってくる。その感触さえも、俺の脳内では「テクスチャデータ:粗さ50、温度18度」といったパラメータとして処理された。


 70%……80%……。


 誰かの声が聞こえた気がした。

 始発で出社してきた同僚だろうか? それとも警備員か?

 遠く、水底から聞こえるような不明瞭な音波。

 意味のある言語として認識できない。ノイズだ。フィルタリングして除去しなければ。


 90%……99%……。


 あと少し。

 あと少しで、処理が完了する。

 完璧なデータが出力される。

 そうすれば、全てが整然とする。

 カオスな現実が、秩序あるテーブルへと再構築される。


 100%。


 脳内で、ファンファーレのような完了音が鳴り響いた。

 『処理が正常に終了しました』

 そんなメッセージボックスが、暗転した視界の中央に浮かび上がったような気がした。


 満足感。

 圧倒的な達成感と共に、俺の意識は End Sub の記述と共に、プツリと途切れた。


 最後に感じたのは、オフィスの床の埃っぽい臭いと、PCの冷却ファンが唸る低い回転音。

 そして、なぜか瞼の裏に焼き付いて離れない、無限に広がる緑色のグリッド線の残像だった。


 それが、サラリーマン・工藤聡としての、最後の記憶だった。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ