1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

4万行のVBA要塞を作って気づいたこと ── 話題の「AI残業主義」に学びつつ、これからは引き算をしようという話

1
Posted at

はじめに

前回は、自作の検査ツールを改修したところ、マクロの関所を一週間にわたって閉ざしていた犯人が、三か月前の Claude 自身だったという顛末を書きました。

手元の開発環境がようやく落ち着きを取り戻したある夜、インターネットの経済動画メディアで、ある若手リーダーの密着ドキュメンタリーを見かけました。

大手IT企業で最年少の本部長に抜擢された20代の彼が、生成AIとWebツールを縦横無尽に駆使して業務効率化を進め、社内外の資料作成や企業リサーチを一瞬で終わらせていく姿を追った番組です。

画面の中で彼が語っていたのは、「人間が残業して徹夜するのをやめ、AIを並列で走らせて残業させる」という、なんとも軽やかで合理的な仕事術でした。

その熱量に感心しながら、ふと自分の足元を見つめ直しました。

私の手元にある自作のアドイン『秀コンボ』は、日々の実務の不便を解消しようと機能を足し続けた結果、気がつけばコード行数が**4万行(40,940行)**を超えていました。

最高峰の知能である Claude や Gemini に「どこか直すところはないか」と総点検させても、もはや「手を入れる場所がない」と言われるまでに研ぎ澄まされた、文字どおりの「要塞」です。

しかし、画面の向こうのスマートな仕事術と、手元にある4万行の重厚なコードを見比べたとき、胸の中にひとつの静かな疑問が湧いてきました。

──この巨大な要塞は、現場の仲間にとって本当に使いやすい道具になっているだろうか。

今回は、話題のAI仕事術から学んだことと、4万行のコードを書き切った先で見えてきた「これからの引き算」についての話です。

TL;DR

  • 話題の密着動画で紹介されていた**「人間の残業を諦め、AIに並列で残業させる」という発想は、極めて合理的**であり、実務でAIを使う者として深く共感しました
  • 会議の合間の数分で Claude Code に戦略のレビューを投げ、自分が打ち合わせをしている間に裏でAIに作業を終わらせておく手法は、まさにAIを「手持ち無沙汰にしない」優れた実務の知恵です
  • 一方で自分の足元を振り返ると、自作アドイン『秀コンボ』は機能を足し続けた結果、36モジュール・40,940行という巨大な規模に達していました
  • Claude と Gemini の両方に総点検させても、もはや修正点が出ないほどロジックは完成しています。しかし、「機能が揃っていること」と「現場が迷わず使えること」は全く別の問題でした
  • これからは、現場にプロンプトを打たせるのではなく、現場では外部AIにすら頼らない完全ローカル自律ツールを目指します。Excel標準の「ソルバー」や「分析ツール」といった眠れる数学エンジンをVBAで操縦し、棚撃ちで直らない残りもExcel単体で最適解を導きます
  • 表側は徹底的に削ぎ落とし、現場の誰もが3つのボタンで迷わず使える「引き算(スマートな集約)」へ舵を切ります。私たちが目指すのは大風呂敷のDXではなく、「目の前の一人が定時で笑顔で帰れる小さな革命」。それでいい、それだけで十分だという設計の原点に立ち返ります

第一節:画面の向こうの「AI残業主義」── 若きリーダーが見せてくれた熱量

動画の中で紹介されていた彼の仕事ぶりは、非常に清々しく、示唆に富むものでした。

エンジニア出身ではないという彼が掲げていたのは、「定時で帰るための効率化」という、現場で働く人間なら誰もが膝を打つコンセプトです。特に印象的だったのが、次の言葉でした。

人間がどれだけ徹夜して残業しても、1日せいぜい10時間程度しか増やせない。しかしAIなら、10体を並列で動かせば一晩で100時間以上働いてくれる。人間の残業は諦めて、AIによる残業主義へ移行しよう。

精神論で深夜までキーボードを叩くのではなく、知能の側をスケールアウトさせてタスクを委託する。この発想は、現代の生成AIと向き合う上でこの上なく真っ当なスタンスです。

動画の中盤、彼が取材の合間のわずか2〜3分でノートPCを開き、Claude Code に事業計画のレビューを投げかける場面がありました。

AIから返ってきた改善案の中からひとつを選び、「この方向でさらに深掘りして」と指示を出すと、彼はすぐにPCを閉じて次の会議室へ向かっていきました。

彼が会議に集中している約40分の間、PCの裏側ではAIエージェントが自律的に思考と調査を進め、彼が席に戻る頃には次の成果物が仕上がっている──。

「AIを自分の手元でじっと待たせる(同期待ち)」のではなく、「非同期でタスクを預けて、AIを手持ち無沙汰にさせない」。これは、日頃からAIエージェントを道具として動かしている人間なら、誰もが見習うべき見事な手の動かし方でした。

残業


第二節:Webの軽やかさと、手元の泥臭さ ── スライド生成の先にあるもの

彼らが開発しているツールは、Web上の情報を自律的に調べ上げ、社内共有用のポップなスライドと、経営会議向けの硬派なスライドを、ボタンひとつで瞬時に出し分けるというものでした。

情報の要約からプレゼン資料の骨子までを一気通貫で仕立て上げるその軽やかさは、現代のSaaSやWebツールの美点を存分に活かしたものです。

しかし、その鮮やかなデモを優しい目で見つめながら、私は自分の机の上にある「現実のデータ」のことを考えていました。

現場の実務において、本当に時間が溶けていくのはどこでしょうか。

綺麗なスライドに仕立てる前段階にある、

  • あちこちの部署から集まってきた、フォーマットの不揃いな数十枚のシート
  • 全角半角が入り乱れ、スペースの有無で一致しない商品コードや顧客名
  • 過去の担当者が残した、複雑怪奇な数式と #N/A や #VALUE! のエラー
  • 勝手に結合されたセルと、日付の形式がバラバラな手入力データ

こうした**「泥臭く、例外だらけで、絶対に逃げられない生データ」**をどうやって整えるかという格闘こそが、毎日の残業の9割を生み出しています。

Webのツールがどれほど進化しても、企業の最も深く、最も重たい実務データは、いまもローカル環境の Excel の中に眠っています。

画面の向こうのスマートなスライド生成を称賛しつつも、私は「やはり、現場の最後の砦(とりで)を守るのは、手元の泥臭い表と直接向き合う技術なのだ」という思いを強くしました。


第三節:気がつけば4万行 ── 足し算を突き詰めた果てに

そうした思いから、私はこれまで自作の『秀コンボ』に、ひたすら機能を追加し続けてきました。

「郵便番号のハイフン抜けを一括で直したい」
「前月と今月の巨大な表を、一瞬で突き合わせて差分を出したい」
「壊れた数式を、セルの値を出さずに構造だけで自動修復したい」
「どんなシートからでも、ワンクリックで専用の検索画面を立ち上げたい」

現場で出会った困りごとをひとつずつ拾い上げ、VBAの最速配列処理(メモリ展開による一撃代入)で組み伏せ、棚と呼ばれるマクロ群へと整理していく。

そんな「足し算の日々」を積み重ねた結果、手元のコードベースはいつの間にか次の規模に膨らんでいました。

項目 実測値
部品(モジュール)数 36 本
総コード行数 40,940 行
アドイン(.xlam)の起動時間 1.19 秒
棚のマクロ初回呼び出し 0.17 秒
マクロ整合性検査(check) 3.6 秒
自動テスト通過件数 全 8/8 件 PASS(pytest 971件)

先日、この4万行のコードを Claude(Opus)と Gemini の両方に預け、「どこかに無駄やバグはないか、徹底的に点検してくれ」と依頼しました。

二大AIの返答は、驚くほど静かなものでした。

「配列のメモリ管理、エラーハンドリング、プロシージャの呼び出し構造ともに、極めて合理的に組まれています。現状で手を入れるべき箇所は見当たりません」

世界最高峰の知能を二人並べて粗探しをさせても、もはや修正点が出てこない。

技術的には、これ以上ないほど誇らしい到達点です。4万行のコードは、現場のどんな無茶なデータが飛んできてもミリ秒で叩き斬る、堅牢無比な「要塞」として完成していました。

要塞


第四節:これからの課題は「引き算」── 現場ではAIにすら頼らない、スマートな道具へ

しかし、完璧に組み上がった4万行の要塞を前にして、私はハタと立ち止まりました。

「作った私には、どこに何があるか全部わかる。けれど、現場の同僚がこれを見たらどう思うだろうか」

答えは明白でした。機能が多すぎて、どこを押せばいいのか分からないのです。

棚の中に100本以上の便利マクロが並んでいても、普段の業務で手一杯な同僚に「このマクロはこういう時に使って、あのマクロはこういうオプションがあって……」と説明したところで、誰も使いこなせません。

「何だか凄そうだけど難しくて触れない」と敬遠され、元の手作業に戻ってしまっては本末転倒です。

そこで考えたのが、**「機能の引き算(スマートな集約)」**でした。

そして、もう一歩踏み込んで考えました。
──**「現場で動かす時は、そもそもAIにすら頼らないツールに育てられないだろうか」**と。

1. 現場にプロンプトを打たせるな

世間のDXは、現場の社員に「ChatGPTのプロンプトを覚えろ」「新しいクラウドAIの画面を開け」と無理を強いています。

しかし、現場の実情はそんなに甘くありません。

  • ネットやクラウドAIに社内データを出せない(セキュリティ規程や閉域網の壁)
  • 毎月のAPI費用やサブスクの予算なんて現場には降りてこない
  • そもそも、目の前の仕事に追われている人が、AIとチャットで対話している暇などない

それなら、答えはひとつです。

「AIの知恵は、開発の段階ですべて4万行のVBAコードの中に溶かし込んでおく。現場で使うときは、外部AIへの通信も、APIキーも、プロンプトも一切いらない。完全にExcel単体だけで動く道具にする」。

これなら、インターネットに繋がらない隔離されたPCでも、情報漏洩リスクゼロ、追加コストゼロで誰でも動かせます。

2. 関数で済むなら関数で。パズルだけ「ソルバー」へ

「でも、AIに頼らなければ、複雑な判断や最適化ができないのではないか?」

そう思われるかもしれません。しかし、VBAと長く向き合ってきた私は知っています。Excelは、人間が思っている以上に奥が深く、とんでもない怪物を最初から腹の中に飼っているということを。

Excelのアドイン設定を開くと、昔からずっと静かに並んでいる機能があります。**「ソルバー」や「分析ツール」**です。

しかし、ここで立ち止まって冷静に考える必要があります。
実は近年のExcel関数の進化は凄まじく、かつて分析ツールを開かなければできなかった相関(CORREL)や重回帰分析(LINEST)、時系列予測(FORECAST.ETS)、データの抽出や並び替え(FILTER, SORT, UNIQUE, LET)の多くは、いまや普通の関数だけで一瞬で計算できます。

関数で済むなら、アドインの設定すら不要です。「誰のPCに配っても壊れずに動く」という意味で、関数でスマートに解く方が遥かに安全でスマートです。

では、何が「関数では絶対にできなくて、ソルバーでしかできない」のか。

それは、**「何千・何万通りもある組み合わせの中から、ルール(制約)を全部満たした上で、一番良い答えを探し出すパズルのような逆算」**です。

たとえば、

  • 「全員の希望休とスキル配置を満たしながら、夜勤連続を避ける最適なシフト表を作る」
  • 「合計1,000個以内で、各50個以上、整数で、売上が最大になる商品の仕入れ配分を決める」

こうした問題は、どれほど関数をこねくり回しても原理的に解けません。ここで初めて、Excel標準の数理最適化エンジン**「ソルバー(Solver)」**の出番になります。

10年前なら「重くて待たされる」と敬遠されていたソルバーですが、現代のPCパワーで実際にVBAから回してみると、わずか0.18秒という瞬きする間のスピードで、数学的な完全最適解を叩き出しました。

いま、私の道具は「棚のマクロ」を先撃ちして表を整え、それでも直らない数式のズレや複雑な残りがあれば、AIに相談して直すという手順を取っています。

けれど、これからはこうです。

  1. まず、進化した関数とVBAの最速配列でスマートに整える(アドイン不要・外部通信不要)
  2. それでも解けない組み合わせパズルや逆算だけ、裏でソルバーを0.18秒走らせて最適解を出す

「何でもかんでも重い機能に頼る」のではなく、「関数で済むなら関数で。パズルだけソルバーへ」。
外部AIへの通信待ち時間はゼロ。計算ミスもゼロ。適材適所で極限まで無駄を削ぎ落とすことこそが、4万行の山を越えた先に見える「真の引き算」です。

3. 現場には「3つのボタン」だけを見せる

Google の検索エンジンは、裏側に世界最大のサーバー群と何億行もの高度なアルゴリズムを抱えています。しかし、ユーザーに見える画面は**「白い背景に、検索窓がひとつあるだけ」**です。だから世界中の誰もが迷わずに使えます。

私の道具の最終形も、まさにこの姿です。

裏側には4万行の歴戦のVBAと、ソルバーや分析ツールのエンジンが唸りを上げて控えている。

けれど、現場の人が見る画面には、

  1. 「【整える】:シートのズレや数式エラーを自動診断して綺麗にする」
  2. 「【比べる】:前回のデータと突き合わせて差分を一瞬で抽出する」
  3. 「【仕上げる】:内部の最適化エンジンを回し、提出用・印刷用の完璧な帳票に仕上げる」

というように、迷いようのない3つの大きなボタンが静かに並んでいるだけ。

「見た目は極限までシンプル。外部AIへの依存もゼロ。なのにボタンを押したら魔法のように仕事が終わる」。

足し算の山を登りきったからこそ見えてきた、これが私の目指す「引き算」の終着点です。

3つでいい


事実と見立ての仕分け

ここで、本稿における客観的事実と、私自身の見立てを整理しておきます。

事実(手元で確認したこと)

  • 話題の動画では、非同期でのタスク委託や並列稼働など、AIの特性を活かした優れた仕事術が実践されていた
  • 自作アドイン『秀コンボ』は、実測で 36 部品・40,940 行に達しており、起動時間は 1.19 秒、マクロ呼び出しは 0.17 秒で動作している
  • Claude および Gemini による網羅的なコード点検において、重大なロジック不全や修正すべき欠陥は検出されなかった
  • 一方で、機能が増えすぎたツールは、開発者以外の人間にとって認知の負荷が大きく、そのままでは現場に定着しにくい

見立て(私の考え)

  • Web完結のAIツールと、ローカルのExcelを直接操作するAIツールは、競合するものではなく守備範囲が異なる。前者は「発信・合意形成」を助け、後者は「現場の泥臭い実務データ」を救う
  • AI開発における「足し算(機能網羅)」のフェーズは一定の完成を迎えた。今後は「引き算(UIの集約と自動化)」によって、現場の認知コストをゼロに近づけることが普及の鍵になる
  • 現場で動かす際は外部AIへの依存を断ち、Excel内部の「ソルバー」や「分析ツール」といった標準エンジンをVBAで操縦することで、完全オフラインで棚撃ちの残り(最適解)を自己完結できる
  • 4万行のコードを削って減らすのではなく、4万行の知見を「裏方の自動判定」へと沈殿させ、表側のボタンを減らすことが真の「スマート化」である

正直な線引き/現場で目指すもの

正直に書くと、4万行ものコードを書き溜めてきた人間にとって、「表のボタンを減らす」「機能を隠す」というのは、少し寂しく、勇気のいる作業でもあります。

苦労して実装したあの判定ロジックも、苦心して高速化したあの抽出処理も、現場の人からは「なんかボタンを押したら勝手に終わった」としか見えなくなるからです。

けれど、道具の主役は作り手ではなく、現場で毎日汗を流している同僚たちです。

世の中では「全社DX」や「大規模AI投資」といった勇ましい言葉が飛び交っています。しかし、現場の人間が本当に求めているのは、そんな大風呂敷ではありません。

「毎日2時間かかっていた集計が、ボタン1個で終わった」
「今日は定時で帰って、子どもとゆっくりお風呂に入れる」

そんな、目の前の一人の仕事に起きる、小さくて確かな革命。それだけでいいのです。それだけで、4万行のコードを書いた意味は十分にあります。


おわりに

画面の向こうで颯爽とAIを操る若きリーダーの姿は、とても眩しく、刺激的なものでした。

彼らがWebの世界で新しい風を吹かせてくれるなら、私はローカルの泥臭いExcelの世界で、静かに足元の仲間たちを支える道具を研ぎ澄ませていようと思います。

足し算の熱狂を終え、引き算の静けさへ。

4万行の要塞に、現場のための小さくて親切な扉を取り付ける作業を、明日から少しずつ始めていきます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?