
目次
「Excelのマクロで業務が回っているが、作った人がもういない」——中小企業のご相談で、いまもっとも多いテーマのひとつです。動いてはいる。けれど誰も中身が分からないので、直せない、引き継げない、止まったときに誰も対応できない。
先日、20年運用されてきた約14,000行規模のExcel VBAを、AIを使って解析する機会がありました(実案件・匿名)。結果として見えてきたのは、「作り直すべきか、使い続けるべきか」を悩む前に、やるべきことがあるという事実です。
この記事の結論
- VBAの属人化は、技術問題ではなく記録が残っていない問題
- 作り直す前に、規模・重複・稼働範囲を数字にする
- 目指す状態は改修ではなく、第三者が保守できること
Excel VBAが属人化する原因
VBAが属人化するのは、担当者の能力や意欲の問題ではありません。業務に合わせて少しずつ足していくという、もっとも自然な使い方の結果です。
- 最初は小さな作業の自動化として作られる
- 業務が変わるたびに、その場で機能を足す
- 「動いている」ので、仕様書を書く動機が生まれない
- 年月が経ち、足した本人以外に全体像が分からなくなる
つまり属人化は、成功した自動化ほど起きやすい現象です。20年動き続けたということは、それだけ現場の役に立っていた証拠でもあります。問題は、その価値が一人の頭の中にしか残っていないことにあります。
そして多くの場合、この問題は退職・異動という期限つきのタイミングで表面化します。時間がない中で「作り直すか、使い続けるか」の二択を迫られ、判断材料がないまま決めてしまう——これが一番避けたい展開です。
AIでVBAを解析すると何が分かるか
今回の案件では、約14,000行のコードをAIに読ませ、全体像を数字で出しました。分かったのは主に次の4点です。
| 分かったこと | 内容 | 判断への効き方 |
|---|---|---|
| 規模 | プロシージャ(処理の単位)が400本超 | 全体を人力で読む前提が現実的か判断できる |
| 重複 | 似たロジックが約3割 | 実質的な機能数は見た目より少ない |
| 型宣言の落とし穴 | 変数の型指定に起因する不具合の芽 | 使い続ける場合の具体的なリスクが分かる |
| 非稼働マクロ | どこからも呼ばれていない処理が存在 | 引き継ぎ・移行の対象範囲を絞れる |
とくに効いたのは、重複が約3割と非稼働マクロの存在です。「14,000行」と聞くと手がつけられない印象になりますが、重複を除き、実際に動いていない部分を外すと、本当に理解・維持すべき範囲はかなり小さくなる。この事実は、数えなければ絶対に分かりません。
型宣言に起因する落とし穴も、AIの解析で洗い出せました。いま問題が出ていないだけで、入力データの条件が変わった瞬間に誤った結果を返しうる箇所です。「動いているから大丈夫」の根拠が実は薄いことを、具体的な行として示せます。
なお、AI解析はあくまで全体の地図を先に作るための手段です。地図ができたあとの設計判断は人間が行います。また、利用するAIツールの仕様や制約は変わるため、最新の条件は公式で確認してください。社外に出せないコードを扱う場合は、取り扱い範囲を先に決めておく必要があります。
提案の軸は「改修」ではなく「保守できる状態」
このとき私たちが出した提案の軸は、機能を良くする改修ではありませんでした。第三者が保守できる状態にすることです。
理由は単純で、いまの困りごとは「機能が足りない」ではなく「誰も触れない」だからです。機能を足しても、触れない状態のままなら来年また同じ相談になります。
保守できる状態とは、具体的にはこういうことです。
- どの処理が、どの業務のどこで使われているかが一覧で分かる
- 使われていない処理が整理されている
- 重複しているロジックが一本化されている
- 変更したいとき、どこを見ればいいかが分かる
この状態になっていれば、そのあと「VBAのまま維持する」「GASやクラウドに移す」「一部だけ作り直す」のどれを選んでも進められます。逆にこの状態を飛ばして移行だけ進めると、分からないものを、分からないまま別の場所に移すことになります。
作り直すか使い続けるかの選び方
判断の順番は、次のようになります。
- 棚卸しする:総行数、処理の本数、重複の割合、実際に呼ばれている範囲を数字で出す。ここでAIが役に立ちます。
- 保守できる状態に整える:一覧化し、不要な処理を外し、重複をまとめる。ここまでは、どの結論を選んでも無駄になりません。
- 決める:整った範囲の大きさと、業務の将来像を見て、維持・移行・部分的な作り直しを選ぶ。
順番を逆にする会社が多いのですが、1を飛ばした2択は、たいてい感覚で決まります。「古いから作り直す」「動いているから触らない」はどちらも根拠になりません。
判断のコツ:見積もりを取る前に棚卸しをすること。範囲が曖昧なまま依頼すると、見積もりは安全側に大きく振れます。数字があるだけで、話が具体的になります。
中小企業が明日からできること
大がかりな話に聞こえるかもしれませんが、最初の一歩は小さくて構いません。
- どのファイルにマクロが入っているかを一覧にする:まずは場所の把握から
- 「これが止まったら業務が止まる」ものに印をつける:優先順位はここで決まります
- 作った人・直せる人の名前を書き出す:空欄が並んだら、それが属人化の現状です
- 業務の流れを1枚に描く:コードより先に、業務側の地図を持つ
この4つは、専門知識がなくても社内でできます。ここまで揃っていれば、外部に相談したときの精度が大きく上がります。
よくある質問
Q. Excel VBAはなぜ属人化してしまうのですか? 業務に合わせて少しずつ機能を足す運用が続き、仕様書が残らないまま作った人しか全体像を把握できなくなるためです。担当者の退職や異動をきっかけに、直せない・引き継げない状態が表面化します。
Q. 古いVBAは作り直すべきですか、使い続けるべきですか? 決める前に棚卸しが必要です。総行数・プロシージャ数・重複の割合・実際に呼ばれている範囲を数字で出すと、作り直す対象は全体の一部だと分かることが多く、判断の精度が上がります。
Q. VBAの解析にAIを使うと何が分かりますか? コードの規模、プロシージャの一覧、重複しているロジックの割合、どこからも呼ばれていない非稼働マクロなどを可視化できます。人が読む前に全体の地図を作る用途に向いています。
まとめ
- VBAの属人化は、成功した自動化ほど起きる。原因は記録が残っていないこと
- 約14,000行規模でも、重複と非稼働分を除くと維持すべき範囲は小さくなる
- 目指すゴールは改修ではなく、第三者が保守できる状態
- 作り直すか使い続けるかは、棚卸しの数字を出したあとに決める
RENOYでは、既存のExcel VBAやマクロの棚卸し・可視化から、その後の維持・移行の判断まで伴走しています。「作った人がいないマクロがあって不安」という段階のご相談も歓迎です。まずはお気軽に無料個別相談(オンライン・60分)をご利用ください。サービス内容をまとめた資料は資料請求からご覧いただけます。
