前任者のExcelマクロが読めない。コメントも設計書もない属人化コードを、AIで解読した実録

本記事にはプロモーション(アフィリエイトリンク)を含みます。

コメントゼロ、引き継ぎコードの絶望

引き継ぎ初日のことです。手渡されたExcelファイルを開いて、言葉を失いました。前任者は「これが毎月の締め処理です」と笑顔で言い残しました。そして翌日、そのまま退社していったのです。その後、Visual Basic Editor(VBE)を開きました。そこには灰色の画面に、1,000行を超えるコードが詰まっていました。スクロールバーをいくら下げても終わりが見えません。背中に冷たい汗が伝うのを感じました。コードの中身は、さらに絶望的でした。

例えば、プログラムのSub名は「Main_syori」でした。これでは中身がわかりません。変数を探すと、ローマ字の略語が暗号のように並んでいました。SIME_FやKARI_CNT、TMP_RNGといった名称です。処理が数珠つなぎになっており、どこで何をしているのか見当もつきません。しかし、何よりも恐ろしいことがあります。1,000行の中で日本語のコメントが1行も存在しないのです。

書いた本人にしか読めない、完全な属人化コードでした。そして、その本人はもう社内にはいません。

動かせない月次マクロの重圧

まず、このマクロは単なる集計ツールではありません。むしろ、毎月15日の月次締め処理を自動化する、経理の生命線です。少しでも誤作動を起こせば、全部門の売上データが狂ってしまいます。改修など恐ろしくて手が出せません。下手に触ってエラーで止まったら最悪です。なぜなら、全社に頭を下げて回る羽目になるからです。先輩社員は無責任なアドバイスをくれました。「とりあえず動いているうちは触るな」という言葉です。放置できるものならそうしたいのが本音でした。

しかし、自分が担当である以上、責任からは逃げられません。エラーが起きた瞬間に責任を問われるのは自分です。15日が近づくにつれて、胃の奥が鉛のように重くなりました。マクロのボタンを押す手が震える未来が、容易に想像できました。中身がわからないブラックボックスは恐怖です。会社の命運を預けるのは怖すぎました。この詰み状態をなんとかしなければなりません。そうでなければ、毎月この重圧に耐えることになります。

すがる思いでブラウザを開きました。そして、AIチャットの画面を表示させます。意を決して、Claude AIにVBAコードの全文を貼り付けました。

VBA解析依頼、AIの不安と驚異の回答

入力したプロンプトは単純なものです。「このVBAコードは何をしているか、処理の流れを日本語で説明してください。変数名の意味も推測してください」と頼みました。送信ボタンを押した直後、画面には一瞬ローディングのアイコンが出ました。ほんの数十秒待つ間、キーボードに置いた手が冷たくなっていました。「AIでも解読不能です」と返ってきたらどうしようと、本気で怯えていたのです。時計の針が少し進みました。

送信からわずか30秒後のことでした。画面に滑らかな日本語の解説が次々と出力され始めました。

ブラックボックスの正体

次に、出力されたテキストを見て、思わず息を呑みました。

そこには、暗号のようだったコードの真の姿が記されていました。処理の流れは大きく3つに分かれているといいます。まずSheet1から当月の売上データを取得します。次に部門別に集計してSheet2に書き出します。最後に印刷範囲を設定してPDF化する流れです。あの謎の変数名についても、明確な推測が提示されました。たとえば、SIME_Fは締め処理フラグです。TrueかFalseを格納しています。KARI_CNTは仮集計用のカウンター変数でした。

TMP_RNGは、一時的なセル範囲の格納用です。すると、霧が晴れるように全体像が見えました。わからないから怖かったのですね。得体の知れないブラックボックスだから胃が痛くなったのです。中身が「売上集計とPDF化」だとわかった瞬間、恐怖の半分は消え去りました。未知の怪物が、ただの手間のかかる事務作業に変わった瞬間でした。

VBA・Pythonをもっと本格的に学ぶなら

VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。

侍エンジニア 無料カウンセリングを予約する →

データの安全地帯確保

全体像がわかっても、安易に実行ボタンを押すのは危険すぎます。次に知るべきは、このコードが牙を剥くポイントです。

一方で、私は再びAIに問いかけました。「このコードの中で、誤動作したときに最もデータへの影響が大きい処理はどこですか?実行前に取るべきバックアップ手順も教えてください」という質問です。AIは容赦なく急所を指摘してきました。具体的には、中盤にある「セルの全消去処理」が危険なようです。条件分岐を間違えると、過去の売上データまで白紙に戻すリスクがあります。手動でデータを復旧しようと思えば、数日徹夜しても終わらない量です。対策も示されました。

実行直前に、作業対象シートを別ファイルとして丸ごとコピー保存する手順です。これなら、マクロが暴走しても直前の状態にすぐ戻せます。テスト実行の安全地帯が、ついに確保されました。

AIでVBAコードを業務手順書化

バックアップ戦略が立てば、あとはメンテナンスを可能にするだけです。

VBAコードをAIで解析し、日本語コメントを付けるイメージ

そこで、プロンプトに指示を打ち込みました。「このVBAコードの各処理にわかりやすい日本語コメントを追加したコードを出力してください」という内容です。数秒後、出力されたコードは別物になっていました。すべての変数宣言や処理ブロック、分岐条件の上に説明があります。

緑色の日本語コメントが添えられています。「ここは部門Aの売上を集計するループ処理です」といった内容です。「ここでフラグをリセットする」という記述もあります。新しく生成されたコードをVBEに貼り付けたとき、思わず声が出ました。ただのアルファベットの羅列だったものが、意味を持った業務手順書に変わったのです。自分が引き継いだのは「呪い」ではありませんでした。ただの「未完成の道具」だったのだと確信しました。属人化コードが、誰でも読めるコードに昇華したのです。

これで次任者に引き継ぐときも安心です。あの恐怖を味わわせずに済みます。

VBAを動かす。変身の瞬間

コードの構造が手に取るようにわかります。バックアップも完璧です。ここで、私は一つの実験をしたくなりました。最も意味不明だった変数名を書き換えてみます。「SIME_F」を「isShimeCompleted」という名前に変更したのです。たった1行の改修です。そして、手元のバックアップファイルを確認し、深呼吸をしてから実行ボタンを押しました。画面が数回ちらつき、指定されたフォルダに新しいPDFが生成されました。

中身の数値は完璧に合っています。ついに動いたのです。自分で直したコードが、業務を完遂しました。ただ怯えるだけだった事務員が、VBAを「触れる人間」へと変わった瞬間でした。

AI使いこなしに必須の基礎知識

そのうえで、AIは魔法の杖に見えますが、落とし穴もあります。AIはコードを「解読」してくれます。しかし、結果が正しいか「判断」するのは人間の仕事です。今回、AIの提示した戦略が腑に落ちた理由があります。実は、過去に少しだけマクロを触った記憶があったからです。もし基礎知識すら知らなければ、危険でした。AIの出力したコードを、そのまま貼り付けていたかもしれません。

それでは、より致命的なエラーを引き起こす恐れがあります。最強の補助ツールを使いこなすには、使い手に基礎知識が求められます。そのため、Amazonで評価の高いVBA入門書を、一冊手元に置いておくのは賢明な選択です。本気でスキルを定着させたいなら、スクールで体系的に学ぶのも強力な武器になります。AIというブースターに点火するためには、土台となる知識が不可欠です。

AIで負の遺産コード解読。Python自動化

前任者が残した負の遺産に立ち向かう方法は確立されました。手順は3つに集約されます。コード全文をAIに貼り「何をしているか」を聞きましょう。「最も危険な処理」を特定して、バックアップ戦略を立てます。最後にコメントを自動生成して、脱属人化を図ります。この手順を踏めば、どんなコードもコントロール可能な業務ツールへと変貌します。未知の恐怖は、解読と対策によって打ち破れるのです。

VBAの解読に成功したら、次はより高度な自動化へ進む道が開けます。脱Excelを果たし、Pythonを用いた自動化の世界へ足を踏み入れる準備が整うはずです。次のステップへの扉は、すでに開いています。

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

AIはまるでプログラミングの先生のようです。変更点を逐一解説しながら、コメント付きのVBAコードを生成してくれました。出力されたコードを見ると、説明が追加されています。Sub名の下に「’ メイン処理:月次締め処理を実行します」とあります。変数「SIME_F」の隣には「’ 締め処理フラグ」と書かれていました。これなら、未来の私がこのコードを見ても安心です。何をしているのかが一目瞭然だからです。

さらに、AIは処理のブロックごとに詳細なコメントを付けてくれました。「ステップ1: 売上データを取得します」「ステップ2: 部門別に集計して書き出します」「ステップ3: PDFとして保存します」といった内容です。まるで丁寧な業務手順書を読んでいるような安心感がありました。このコードがあれば、もう暗号に怯える必要はありません。もしエラーが出たとしても、すぐに原因を特定できる自信が湧いてきました。

しかし、これで終わりではありません。コメント付きコードができたからといって、いきなり実行するのは無謀です。

チェックリストと関連資料

無料プレゼント

Excel業務を自動化する前に確認するチェックリスト(PDF)

自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。

無料でチェックリストを受け取る

¥980 ミニキット

コピペで動かせる3スクリプト+自動化チェックリスト

最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。

ミニキットを見る(¥980)

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

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

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

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

Excel VBA プログラミング 解説書 第2版 基礎知識 学習 参考書 マクロ 自動化 業務効率化 手順書 入門書 技術書

関連する学びを少し広げるなら

Excel VBA プログラミング 解説書 第2版 基礎知識 学習 参考書 マクロ 自動化 業務効率化 手順書 入門書 技術書

この記事の内容を手元で試しながら、実務で少しずつ身につけたい方に向いた一冊です。

Amazonで見る → 楽天で見る →

※Amazon/楽天のアフィリエイトリンクを含みます

[アンケート] この記事は役に立ちましたか?

30秒で答えられます。改善の参考にします。

1問だけ回答する