Excelマクロが直せない。VBAを作った人が辞めた時にやること

「請求書を作るときに使っているExcelのボタン、あれを押すと勝手に計算されるやつ。あれ、誰が作ったんだっけ?」

経理の担当者にそう聞かれて、部署を見回しても答えられる人がいない。作ったのは3年前に辞めた前任者で、今は連絡先も分からない。ボタンを押せば今日も動く。ただ、なぜ動くのかは誰も説明できない。

中小企業のバックオフィスで、こうした「作った本人がいなくなったExcelマクロ」は珍しくありません。毎日の集計や請求、在庫の管理を、Excelの中に埋め込まれたVBAというプログラムが黙々と回している。便利だから使い続けているうちに、いつの間にか会社の業務がそのマクロに依存している状態です。

問題は、それが動かなくなったときに起きます。ある朝ボタンを押してもエラーが出る、あるいはパソコンを買い替えた途端に反応しなくなる。そのとき、直せる人が社内にいないと、業務そのものが止まってしまいます。

この記事では、担当者が辞めて直せなくなったExcelマクロを、どう扱えばいいのかを整理します。結論を先に言えば、あわてて直そうとする前に「直す・作り替える・捨てる」のどれが自社に合うかを見極めるのが先です。非エンジニアの経営者・担当者の目線で、順に見ていきます。


Excelマクロの属人化とは──「野良マクロ」がなぜ危険なのか

まず言葉を整理します。Excelマクロの属人化とは、特定の個人が作ったマクロを、その人以外は中身を理解できず、修正も更新もできない状態を指します。 そして、作った本人の手を離れて誰の管理下にもない状態で業務に使われているマクロを、俗に「野良マクロ」と呼びます。

VBA(Visual Basic for Applications)は、Excelに標準で入っている簡易的なプログラミング機能です。「マクロ」と呼ばれるものの多くは、このVBAで書かれています。ある程度パソコンに詳しい社員が、自分の作業を楽にするために組んだ。最初はその人の手元のちょっとした効率化ツールだったはずです。

厄介なのは、便利なものほど周りに広まる点です。「Aさんのあのファイル、うちの部署でも使いたい」と共有され、いつの間にか複数の部署が同じマクロで動くようになる。この時点で、それは「個人のツール」ではなく「会社の業務インフラ」に変わっています。ところが管理体制は個人のツールのまま。ここが、便利な道具が時限爆弾に変わる転換点です。

野良マクロが危険なのは、次の3つが重なるからです。第一に、業務が止まるほど重要な処理を担っているのに、第二に、その中身を理解している人が社内にいない。そして第三に、動いている間は誰も問題だと思わない。この3つがそろうと、壊れて初めて依存の深さに気づく、という最悪の順番で問題が表面化します。


なぜExcelマクロは引き継げないのか

「ファイルは残っているのだから、後任の誰かが見れば分かるのでは」。そう思われるかもしれません。ところが、Excelマクロは引き継ぎがとりわけ難しい部類に入ります。理由を分けて説明します。

コメントも仕様書も残っていない

きちんと開発されたシステムなら、プログラムの中に「この処理は何をしているか」を説明する注釈(コメント)や、外部の設計書が付いているのが普通です。ところが野良マクロは、作った本人が自分だけ分かればいいと考えて書いていることがほとんどです。注釈もなければ、仕様書もない。

後任者がVBAのコードを開いても、変数名は作った人にしか意味の分からない略語で、処理の意図が読み取れない。「なぜこの順番でこの計算をしているのか」が分からなければ、うかつに直せません。1行変えたら別の場所で計算がずれる、という怖さがつきまといます。

OSやExcelの更新で、ある日動かなくなる

もう1つ、時間が経ってから効いてくる問題があります。マクロは、作られた当時のExcelやWindowsの環境に合わせて書かれています。ところがパソコンは買い替えられ、OSもExcelも自動で更新されていきます。

以前のバージョンでは使えた命令が、新しいExcelでは廃止されている。あるいは、64ビット版のExcelに切り替わった途端に、特定の処理がエラーで止まる。こうしたことが実際に起こります。昨日まで動いていたマクロが、Excelの更新が入った翌朝に動かなくなる。作った人がいれば直せる話ですが、いなければ原因の見当すらつきません。

誰も触れないまま、業務が人質になる

コメントも仕様書もなく、いつ動かなくなるか分からない。そうなると、後任者が取る態度は決まってきます。「怖くて触れない」です。

触ればどこが壊れるか分からないから、誰も手をつけない。手をつけないから、いつまでも中身がブラックボックスのまま。そして、そのマクロがないと業務が回らないので、使うのをやめることもできない。動いているのに誰も制御できず、業務のほうがマクロに縛られている。これが「業務が人質に取られている」という状態です。属人化を放置した先に待っているのは、この身動きの取れなさです。


直す・作り替える・捨てる──3つの選択肢と判断基準

では、直せなくなった野良マクロをどうするか。取れる道は大きく3つあります。「解析して延命する」「別の手段に載せ替える」「使うのをやめる」です。大事なのは、どれか1つが正解なのではなく、そのマクロが担っている業務の性質によって最適解が変わる、という点です。

いきなり作り直しに走る必要はありません。SaaSで足りるならSaaSに移せばいいし、今のマクロで困っていない部分はそのまま延命すればいい。過剰に手を広げず、必要なところだけ手当てするのが、コストの面でも現実的です。3つの選択肢を並べて比べます。

選択肢向くケースコスト感主なリスク
①解析して延命する今の処理内容に不満はなく、動き続けてほしい。似た機能を持つ既製品がない独自の業務中身を読み解く調査に費用がかかるが、作り直すより抑えやすい元の設計が古いままなので、いずれ再度の改修が要る
②別の手段に載せ替えるやっていることが請求・在庫・顧客管理など一般的で、SaaSやツールで代替できる移行の手間はかかるが、以後の保守を自社で抱えずに済む既製品に業務を合わせる調整が必要。独自の例外処理は載せにくい
③使うのをやめる作った当時は必要だったが、今は業務自体が変わり、なくても回るほぼかからない実は裏で他の処理とつながっていた、という取りこぼしに注意

判断の順序としては、まず③から疑うのがおすすめです。「そもそも、この処理は今も本当に必要か」を問い直す。惰性で続けているだけなら、やめるのが一番安上がりです。次に②を検討します。やっていることが一般的な業務なら、世の中の既製ツールで置き換えられることが多い。そのうえで、独自性が高くて代替品がなく、動き続けてほしいものだけを①で延命する。この順番で絞り込むと、費用をかけるべき対象がはっきりします。

なお、①の延命を選ぶ場合でも、中身が分からないマクロを外側から読み解く作業には専門性が要ります。ここは次の章で触れます。


誰に頼めるのか──社内で抱える限界と、外部に引き取ってもらう選択

見極めがついたとして、実際に手を動かすのは誰か。社内でやれる範囲と、外部に頼むべき範囲を分けて考えます。

社内の後任がやること──現物保全と記録

エンジニアでない後任者に「マクロを直せ」と求めるのは酷ですが、直す前の準備なら社内でできます。むしろ、ここを社内で押さえておくと、外部に頼むときの精度が上がります。

やることは2つです。1つは現物の保全。問題のExcelファイルを、下手にいじる前にそっくりコピーして別の場所に保存しておく。原因が分からないまま再起動やファイルの上書きを繰り返すと、エラーの手がかりが消えて復旧が遠のきます。もう1つは記録です。「どういう操作をしたら、どんなエラーが出るのか」を、画面のスクリーンショットとあわせて書き留めておく。再現の手順が残っていれば、後から中身を見る人の調査が格段に速くなります。この「まず現状を残す」という初動は、Excelマクロに限らずシステムが止まったとき共通の鉄則で、業務システムが止まったのに頼める会社がない――トラブル発生後の動き方で詳しく整理しています。

引き継ぎを人から人へ受け渡す局面では、確認すべき項目がもう少し広くなります。ファイルの置き場所やアカウント、関連する他の資料まで含めた引き継ぎの実務は、社内SEの退職が決まったら?経営者が確認すべき引き継ぎチェックリストにチェックリストとしてまとめています。

外部に頼むなら、何を見て選ぶか

社内で直せないと判断したら、外部に頼ることになります。ここで知っておきたいのは、「作った本人でなくても、外側から挙動を読み解いてマクロを引き取れる会社がある」という事実です。仕様書がなく、作った人と連絡が取れなくても、動いているファイルとエラーの症状から中身を再構成して対応する。そういう仕事を専門にしている会社が存在します。

ただし、どこに頼んでも同じというわけではありません。頼む相手を選ぶとき、次の3点を見てください。

1つ目は、資料がない状態から挙動ベースで引き取ってくれるか。「仕様書がないと受けられない」と断る会社は、この用途には向きません。2つ目は、いきなり全部の作り直しを勧めてこないか。中身をよく見ないまま「古いので作り替えましょう」と大きな話にする相手には注意が要ります。前の章で見たとおり、延命で足りるものまで作り直す必要はありません。3つ目は、料金の出方が分かりやすいか。何にいくらかかるのかを最初に説明できる相手のほうが、後で揉めにくい。

料金については、近ごろは月額固定ではなく、実際に動いた分だけ請求する実働ベース(従量課金)で保守を持つ会社も出てきました。使わない月に固定費を払い続けなくて済むので、常に手を入れるわけではない野良マクロの面倒を見てもらうには、相性のいい料金の形です。これは売り込みというより、選ぶ側が「自社の使い方に合うか」を測る物差しとして持っておくと役立ちます。外部委託先の見極め方は、Excelマクロに限らず業務システム全般に共通するので、社内SEが退職したら?システム保守を任せる開発会社の選び方で4つの基準として詳しく解説しています。


野良マクロを二度と生まないために

目の前のマクロを何とかしても、同じ作り方を続けていれば、数年後にまた同じ問題が起きます。再発を防ぐには、個人の工夫が野良マクロに育たない仕組みを作る必要があります。ポイントは3つです。

1つ目は、業務そのものを標準化しておくこと。属人化したマクロは、たいてい属人化した業務の上に建っています。「この処理はAさんのやり方」という業務が残っている限り、それを楽にするマクロもAさん専用になります。逆に、業務のやり方が会社の公式ルールとして整っていれば、それを支えるツールも共有できる形に近づきます。この「システムやツールを入れる前に業務を整える」という順番については、中小企業がシステム導入前に取り組むべき3ステップで掘り下げています。

2つ目は、個人のパソコンの中だけで業務を完結させないこと。誰かの手元のフォルダにしかないファイルは、その人が辞めれば行方が分からなくなります。業務に使うファイルは共有の置き場所に置き、個人PC限りにしない。これだけで、いなくなった途端に消えるという事態を減らせます。

3つ目は、置き場所と役割を共有しておくこと。「どのファイルが、何の業務を、どこで支えているか」を、担当者以外も分かる形にしておく。一覧にするほど大げさでなくても、「請求まわりはこのフォルダのこのファイル」と言える人が複数いれば、それだけで人質状態は避けられます。作った本人しか知らない、をなくすことが、野良マクロを生まない一番の近道です。


よくある質問(FAQ)

Q. マクロを作った担当者がすでに退職しています。連絡が取れなくても直せますか。

本人と連絡が取れなくても、動いているExcelファイルとエラーの症状から中身を読み解いて対応できる会社があります。まずはファイルを保全し、どんな操作でどんなエラーが出るかを記録しておくと、調査がスムーズに進みます。作った人がいないこと自体は、対応をあきらめる理由にはなりません。

Q. Excelのバージョンを上げたらマクロが動かなくなりました。原因は何ですか。

古いバージョンで使えた命令が新しいExcelで廃止された、あるいは32ビット版から64ビット版に変わって特定の処理が通らなくなった、といった環境の変化が主な原因です。マクロは作られた当時の環境に合わせて書かれているため、OSやExcelの更新で動かなくなることがあります。元のファイルはいじらず保全したうえで、中身を確認できる人に見てもらうのが安全です。

Q. 直すのと作り替えるのは、どちらが安く済みますか。

一概には言えず、そのマクロが担う業務によって変わります。今の処理内容に不満がなく動き続けてほしいだけなら、中身を解析して延命するほうが作り直しより安く済むことが多いです。一方、やっていることが請求や在庫管理など一般的な業務なら、既製のツールに載せ替えたほうが、以後の保守を自社で抱えずに済みます。まず「本当に必要な処理か」を問い直したうえで判断するのがおすすめです。

Q. また同じことにならないためには、どうすればいいですか。

業務を個人のやり方から会社の公式ルールに整えること、業務ファイルを個人PCの中だけに置かず共有の場所に保管すること、そして「どのファイルが何を支えているか」を担当者以外も分かる形にしておくこと。この3つで、個人の工夫が管理不能な野良マクロに育つのを防げます。

まとめ

作った担当者がいなくなったExcelマクロは、動いているうちは問題に見えませんが、止まった瞬間に業務ごと立ち往生します。あわてて直そうとする前に、まず「直す・作り替える・捨てる」のどれが自社に合うかを見極める。この順番を守るだけで、かける費用も手間もずいぶん変わってきます。

次の一歩として、まずは問題のファイルを保全し、どんな操作でどんなエラーが出るかを書き留めるところから始めてください。そのうえで、社内で抱えきれないと感じたら、外側から挙動を読み解いて引き取れる会社に相談する。「作った人がいないから無理」とあきらめる必要はありません。

仕様書がなく、作った担当者とも連絡が取れないExcelマクロや業務システムでも、動いている状態から引き取って保守・改修を続けられます。月額固定ではなく、実際に動いた分だけ請求する実働ベース(従量課金)なので、常に手を入れるわけではない野良マクロの面倒を見てもらう用途にも向いています。

システムレスキュー

開発会社が廃業した、担当者が退職した、仕様書が残っていない。そんな業務システムを引き取り、保守・改修を継続します

/service/system-rescue/

どこから手をつけるべきか迷う段階でしたら、状況のご相談からでも構いません。お気軽にご連絡ください。

お問い合わせ

どんなことでもお気軽にお問い合わせください。相談、お見積もりは無料です。

/contact/

関連記事