VBAを「卒業」したあの日──引き継ぎ先を探しながら、自分のコードと向き合った記録

異動の夜、自作VBAが後任のブラックボックス

異動の辞令が出た日の夜、オフィスには誰もいなかった。静まり返ったフロアでひとりモニターに向かいながら。じわじわと胃の底が重くなるのを感じていた。

原因は明白だ。自分のPCに眠っている、数年かけて増殖したVBAマクロ群です。

まず、かつて。前任者が残した真っ黒なブラックボックスを開いたときの恐怖は今でも忘れられない。変数名が「a」「b1」ばかりの暗号のようなコード。実行ボタンを押すたびに画面が激しく点滅し、エラーが出たら最後。どこを直せばいいのか誰にも分からない。あの時、私は前任者の無責任さを心の中で何度も呪ったものです。

だが、今度は自分が「渡す側」になる番が来てしまった。自分が作ったマクロは、自分にとってはかわいい道具である。しかし、後任の目から見ればどうだろうか。

悪夢のVBA

恐る恐る自分のメインツールである「月次売上集計マクロ.xlsm」のVBEを開いてみた。標準モジュールがModule1からModule14まで並び。500行を超えるプロシージャの中には「’とりあえず動くようにした(2021/4/10)」という不穏なコメントが放置されていた。背筋に冷たい汗が伝うのを感じた。これを他人に渡すのは、あまりにも残酷です。

次に、自分のVBAが、誰かにとっての恐怖になるかもしれない。その事実に気づいたとき。私はこのまま使い方だけ教えて逃げるという選択肢を捨てざるを得なかった。

後任のためのマクロ棚卸しと方針

後任が怯えずに済む状態を作るために、私は稼働中のマクロ群を棚卸しすることにした。取れる選択肢は大きく分けて3つ。Pythonへの移行、ドキュメントの作成、そして業務ごとの廃止だ。棚卸しによってリストアップされた。日常的に使用している自作マクロの総数は24個にのぼった。

最初の選択肢は「廃止」である。マクロを引き継ぐのが難しいなら。そもそもそのマクロが必要な業務ごと無くしてしまえばいい。システムからCSVをダウンロードし、形を整えて別の部署にメールするだけの作業。確認すると。送信先の部署はもうそのExcelを見ていなかったという衝撃の事実が判明した。不要な業務を自動化し続けることほど、無駄なことはありません。

一方で、残ったマクロについて。Python移行とドキュメント化のどちらを選ぶかが次の課題となった。業務の重要度が高く、処理が複雑なものは。いっそモダンな言語で書き直した方が後任のためになるのではないか。そんな淡い期待を抱いて、私は移行計画を立て始めた。

業務の複雑さとエラー発生時のリスクをマトリクス表に落とし込み。どれをどう処理すべきか振り分けていく。この整理作業だけでも、頭の中のモヤモヤが少しずつ晴れていくのを感じた。

Python化の壁とVBAの真価

せっかくならPythonに書き直して、属人化を完全に排除してやろう。私は意気揚々と。最もエラーが頻発していた集計マクロをPythonスクリプトで書き直し始めた。Pandasを使えば。VBAで数十行かかっていたループ処理がたったの数行で終わる。コードの可読性は飛躍的に向上した。これなら後任も読みやすいはずです。

しかし、その幻想は数日後に打ち砕かれることになる。原因はシンプルだった。後任のPC環境である。非エンジニアの会社員にとって。Pythonの実行環境を構築するのは想像以上にハードルが高い。

テストとして、後任のPCにPythonをインストールしようとした。しかし、社内プロキシとセキュリティソフトの壁に阻まれ。pip installでライブラリを入れるだけで真っ赤なエラーが画面を埋め尽くした。情報システム部に申請書を出して許可をもらうまでに2週間かかると言われ。私はそっとターミナルを閉じた。

VBAの真価、属人化を防ぐドキュメント整備

どんなに美しいコードを書いても、実行できなければただのテキストデータだ。業務効率化ツールとしてのVBAの最大の強みは。Excelさえあれば誰のPCでも動くという圧倒的なポータビリティにあったのです。

そのため、この経験から、無理なPython移行はかえって属人化を深めると悟った。新しい技術を導入するよりも。既存のVBAのコメントとドキュメントを徹底的に整備すること。それが、今の状況における最も即効性の高い解決策であると判断した。

ここで一度立ち止まって考えてみてください

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →

AIが暴いた、コードに潜む業務の歪み

ドキュメント整備の方針は決まったが、現実は甘くなかった。何千行にも及ぶ自分のコードを読み返し。一つひとつの処理の意味を日本語に翻訳していく作業は、苦痛以外の何物でもない。しかも。自分が書いたはずなのになぜここでこんな回りくどい条件分岐をしているのかが全く思い出せない箇所がいくつもあった。

途方に暮れた私は、生成AIに頼ることにした。コードを全選択してコピーし、Claudeのチャット欄に貼り付ける。「このVBAコードが何をしているか。非エンジニアの後任向けに分かりやすく解説してくれ。引き継ぎ資料にそのまま使えるレベルで頼む。」

AIが紐解くコードの真意

しかし、数秒後、画面に表示された回答を見て、私は言葉を失った。Claudeは単にコードを翻訳するだけでなく。「この部分は月末の休業日を判定するための例外処理だと思われますが。12月だけ別のロジックが適用されています」と指摘してきた。すっかり忘れていたが、それは3年前の年末。経理部からの急な仕様変更に対応するために突貫工事で書き足した部分だった。AIに言われて初めて、自分のコードの歪みに気づかされたのです。

AIの力で、ブラックボックス化していたコードの意図が次々と紐解かれていく。それは単なる作業の代行ではなく。私自身が過去の業務プロセスを再学習するような不思議な体験だった。

{{IMAGE:パネル/vba-comment-business-context.webp|VBEのコード画面。処理の横に業務背景を詳しく記した日本語コメントが追加されている}}

属人化の真因はコンテキスト不足

さらに、AIとの対話を通して引き継ぎ資料を作っていくうちに、ある重大な真実に気づいた。VBAマクロが後任から恐れられ、属人化してしまう本当の原因。それは決してコードの構文が難しいからではない。プログラミングの知識が足りないからでもありません。

本当の理由は。なぜそのロジックが必要になったのかというコンテキスト(背景情報)が引き継がれていないことなのです。

例えば、A社からのデータだけは、金額列を100倍するという謎の1行があるとする。コードを読めば100倍していることは分かる。しかし、A社のシステムだけ単位が円ではなく百円だからという背景を知らなければ。そのコードに触れることは絶対にできない。うかつに消せば重大なクレームに繋がるからです。

まず、今回の引き継ぎにおいて。コードそのものの解説よりも「業務ルールの背景」を書き出すことに費やした時間は約15時間にのぼった。コードより先に、業務のコンテキストが死んでいる。これが属人化の正体だった。

引き継ぎは「なぜ」が命

私が前任者のコードに怯えたのも、変数名が適当だったからだけではない。なぜこの処理をしているのかという意図がどこにも書かれていなかったからだ。だからこそ。引き継ぎ資料に書くべきは「どう動くか」ではなく「なぜこう書いたか」である。例外処理が生まれた経緯、過去のトラブル対応の履歴。それらの文脈を添えることで、ただの文字列の羅列は。意味を持った「道具」へと生まれ変わる。

{{IMAGE:パネル/handover-email-sent-sunset.webp|引き継ぎ資料を添付した社内メールの送信完了画面。夕暮れのオフィスが背景に広がる}}

VBA卒業、次世代へのバトン

次に、引き継ぎの最終日。ドキュメントの束と、整理されたマクロが入ったフォルダを後任に渡した。「何かあったら、この資料のトラブルシューティングを見てほしい。それでもダメなら、いつでも連絡してくれて構わない。」
後任は資料に軽く目を通し。「これなら私でもなんとか読めそうだ」と笑ってくれた。その瞬間、ずっと胃の底にあった重い塊が、すっと溶けていくのを感じた。VBAから離れ、次の担当者へバトンを渡す。それは決して、長年使ってきたツールを否定することではない。自分が苦労して作り上げ、業務を支えてくれたコードたち。それらを誰も触れないブラックボックスとして腐らせるのではなく。次の人が安心して使える状態に整えてから手放す。それこそが、ツールへの最大の敬意であり、本当の意味での卒業なのだ。引き継ぎを終え、私は自分のPCから古いマクロのフォルダを削除した。

VBA卒業、次世代へのバトン(続き)

画面から消えゆくファイル群を見つめながら、少しだけ寂しく。そして晴れやかな気持ちがこみ上げてきた──これが。私の「卒業」だ!
📘 このスキルを活かしてさらに前へ進むならVBAやExcelマクロをもっと体系的に学びたい方には。実務向けの技術書で基礎を固めるのも有効な手段です。Amazonでは「Excel VBA 自動化」に関する評価の高い書籍が豊富に揃っています。VBA・Excelマクロの技術書(Amazon) →
📘 このスキルを活かしてさらに前へ進むならAIを使ったプログラミングをゼロから体系的に学びたい方には。生成AIプログラミングの教科書『大蔵~TAIZO~』がおすすめです。ChatGPTやClaude等の生成AIと組み合わせた実践的なコーディング手法を習得できます。生成AIプログラミングの教科書『大蔵~TAIZO~』 →

関連リンクとチェックリスト

学習サービスとアンケート

このスキルを活かしてさらに前へ進むなら

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →