Excelマクロを組んだ人が退職したあとに会社が困ること|属人化の対策と引き継ぎ

「この計算、○○さんしかわからないんです」「前任者が作ったExcelが壊れたけれど、誰も直せない」。中小企業の経営者や事務担当者から、よく聞く話です。

Excelのマクロは、ボタン一つで集計や帳票の出力を自動にできる便利な仕組みです。ところが作った人が退職すると、社内の誰も触れないファイルに変わることがあります。

この記事では、マクロを組んだ人が退職したあとに会社が困ることと、その原因、AIを使った解読を含む対策を整理します。

先に答えをお伝えすると、退職の前後でまずやることは次の三つです。

  1. 社内のマクロを棚卸しして、業務に欠かせないものを洗い出す
  2. AIの説明やコメントで、マクロの中身を言葉にする
  3. マクロのまま残すか、別の仕組みに置き換えるかを決める
久野

退職が決まってからでは、作った人に聞ける時間は限られます。在籍しているうちに、どのファイルに何のマクロがあるかだけでも一覧にしておきましょう。

この記事で分かること
  • マクロを組んだ人が退職したあとに起きる三つの問題
  • 社内のマクロの探し方と、棚卸し表に書く項目
  • AIでマクロを解読・修正するときの頼み方と注意
  • マクロを残すか置き換えるかの判断
目次

退職後に会社が困る三つのこと

業務に組み込まれたマクロを残したまま担当者が退職すると、次の三つの問題が起きやすくなります。

困ること起きること気づくきっかけ
マクロが突然動かなくなるエラーで止まり、どこを直せばよいか分からない締め日などに実行したとき
業務が変わっても直せない項目や制度が変わっても、計算を直せる人がいない業務の変更や制度の改正
中身が分からないまま使う計算の誤りに長いあいだ気づかない取引先からの指摘

マクロが突然動かなくなる

ExcelやWindowsの更新、PCの買い替えをきっかけに、それまで動いていたマクロがエラーで止まることがあります。

コードの中身を分かる人がいなければ、エラーの表示を見ても、どこを直せばよいか分かりません。止まるきっかけには、次のようなものがあります。

きっかけ起きること
メールやダウンロードで受け取ったファイルWindows版のOfficeでは、インターネットから入手したファイルのマクロが既定でブロックされる
32ビット版から64ビット版のOfficeへの入れ替えWindowsの機能を呼び出すDeclare文は、PtrSafeを付けるなどの書き換えが要る
WindowsのVBScriptの廃止VBScriptの正規表現(VBScript.RegExp)や、.vbsファイルの呼び出しがいずれ動かなくなる
シートの列やファイルの置き場所の変更マクロが決め打ちで読んでいる列やフォルダが変わり、止まるか別の値を読む

インターネットから入手したファイルのブロックは、2022年以降のバージョンのOfficeで順に既定になりました。

ファイルのプロパティで「許可する」にチェックを入れると解除できますが、出どころが確かなファイルだけに限ってください。

社内で作ったファイルも、既定の設定ではマクロが無効の状態で開き、「コンテンツの有効化」を押すと動きます。共有フォルダを「信頼できる場所」に登録すると警告なしで動くようになるため、登録するフォルダは絞っておきます。

VBScriptは、Microsoftが段階的な廃止を案内しており、既定で無効になる第2段階は2026〜2027年ごろの予定です(2026年9月時点)。

廃止されるのはVBScriptで、VBAではありません。Officeのバージョン2508以降は、VBAそのものに正規表現の機能が組み込まれています。

後で紹介するコード例で使っている Scripting.Dictionary(集計用の辞書)は、VBScriptの廃止の影響を受けないとMicrosoftは説明しています。

月末の締めの当日にマクロが止まると、手作業に切り替えようにも元のデータの組み立てが分からず、処理が翌日にずれ込むこともあります。

業務が変わっても誰も直せない

マクロは一度動き始めると、何年も使い続けることがあります。その間に業務の中身が変わったり項目が増えたりしても、コードを読める人がいなければ直せません。

たとえば税率や単価がコードの中に直接書かれていると、制度が変わってもマクロの計算は古いままです。画面の上では動いているように見えても、中の計算が古いままということがあります。

直せない部分は、マクロの出力を人が手で直して補うようになります。その手直しがまた、特定の人しか知らない作業になっていきます。

中身が分からないまま使い続ける

いちばん気づきにくいのがこの状態です。「ボタンを押すと請求書ができる」という操作だけを引き継いで、中で何をしているかを誰も把握していないまま使い続けます。

取引先から「請求金額がおかしい」と連絡が来て、初めて気づくこともあります。いつから誤っていたのかも分からないため、過去にさかのぼって確かめる作業が発生します。

マクロが属人化する原因

マクロが属人化する原因は、主に次の三つです。

  1. 引き継ぎをしないまま、作った人が退職する
  2. コードに説明(コメント)が書かれていない
  3. 壊れるのが怖くて、誰も中を確かめない

作った本人は「ボタンを押すだけで使える」と思っているため、中の説明をしないまま退職することがあります。本人にとっては当たり前の手順ほど、書き残されません。

独学で作ったマクロには、「この処理は何のためか」という説明(コメント)が書かれていないことがよくあります。そのうえ「壊れたら困る」という気持ちから誰も中を開かず、問題が隠れたまま長いあいだ放っておかれます。

次の項目に当てはまるものが多いほど、退職のときに困りやすいマクロです。

  • 直せる人が社内に一人しかいない
  • 何のためのマクロか、書いたものがない
  • どのファイルが最新なのか分からない
  • 作った人のPCにしかないマクロがある
  • エラーが出たときに誰に聞くか決まっていない

マクロに限らない業務全体の属人化は、業務の属人化解消の進め方で順番を説明しています。

Excelマクロの中身と仕組み

対策の前に、マクロがどこにどんな形で入っているかを知っておくと、社内のマクロを調べるときに役立ちます。

マクロはVBAで書かれたプログラム

Excelのマクロは、VBA(Visual Basic for Applications)というプログラミング言語で書かれた自動化の仕組みです。

MicrosoftがExcelやWordなどのOffice向けに用意した言語で、Pythonなどと同じプログラミング言語の一種です。

動く場所がOfficeのアプリの中に限られる分、セルの読み書きやシートの操作、印刷をコードで直接扱いやすくなっています。

なお、VBAのマクロはWindows版とMac版のExcelで動き、Web版のExcelでは動きません。

実物を見たことがない方のために、中小企業でよく使われる例を紹介します。「売上データ」シートの売上を商品別・月別に集計して、「月次報告書」シートに書き出すマクロです。

Sub 月次売上集計()

    Dim ws売上 As Worksheet
    Dim ws報告 As Worksheet
    Dim 最終行 As Long
    Dim i As Long
    Dim 商品名 As String
    Dim 月 As String
    Dim 金額 As Long

    ' シートを取得する
    Set ws売上 = ThisWorkbook.Sheets("売上データ")
    Set ws報告 = ThisWorkbook.Sheets("月次報告書")

    ' 月次報告書シートを一旦クリアする
    ws報告.Cells.Clear

    ' 集計用の辞書を作る
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")

    ' 売上データの最終行を取得する
    最終行 = ws売上.Cells(Rows.Count, 1).End(xlUp).Row

    ' 2行目からループして商品別・月別に集計する
    For i = 2 To 最終行
        月 = Format(ws売上.Cells(i, 1).Value, "YYYY-MM")
        商品名 = ws売上.Cells(i, 2).Value
        金額 = ws売上.Cells(i, 6).Value

        Dim key As String
        key = 商品名 & "|" & 月
        If dic.exists(key) Then
            dic(key) = dic(key) + 金額
        Else
            dic.Add key, 金額
        End If
    Next i

    ' ヘッダー行を書き出す
    ws報告.Cells(1, 1).Value = "商品名"
    ws報告.Cells(1, 2).Value = "月"
    ws報告.Cells(1, 3).Value = "売上合計"

    ' 集計結果を書き出す
    Dim 出力行 As Long
    出力行 = 2
    Dim k As Variant
    For Each k In dic.Keys
        Dim parts() As String
        parts = Split(k, "|")
        ws報告.Cells(出力行, 1).Value = parts(0)
        ws報告.Cells(出力行, 2).Value = parts(1)
        ws報告.Cells(出力行, 3).Value = dic(k)
        出力行 = 出力行 + 1
    Next k

    MsgBox "月次集計が完了しました。", vbInformation

End Sub

コードが読めない方でも、' で始まる日本語のコメントを追えば、何をしているかの見当はつきます。社内のマクロがこのようにコメント付きで書かれていれば、引き継ぎはずっと楽になります。

VBAエディタでコードを見る

VBAエディタは、Excelに組み込まれたコードの編集画面です。Excelを開いた状態でAlt+F11を押すと開きます。

画面の左側の「プロジェクト」には、開いているExcelファイルの中身が並びます。

「Microsoft Excel Objects」の下に各シートと ThisWorkbook があり、その下の「標準モジュール」に Module1 などが入っています。

マクロのコードは、ほとんどの場合この標準モジュールの中に書かれています。

ただし、ファイルを開いたときやセルを書き換えたときに自動で動く処理は、シートや ThisWorkbook の中に書かれていることがあるため、そちらも開いて確かめます。

ボタンとマクロは名前でつながる

シートに置かれたボタンは、どのマクロを動かすかという「登録」を持っています。ボタンを右クリックして「マクロの登録」を選ぶと、そのボタンに登録されているマクロ名を確かめられます。

ボタンを押すと、登録されたマクロ名を標準モジュールの中から探して実行します。つまりボタンとコードは直接つながっているのではなく、マクロ名を通じてつながっています。

マクロ名が変わっていたり Module1 ごと消えていたりすると、「マクロが見つからない」という意味のエラーが出ます。

ボタンを押してエラーが出たら、まず登録されたマクロ名を確かめ、その名前が標準モジュールにあるかを見れば、原因を絞り込めます。

なお、開発タブから置く「ActiveXコントロール」のボタンは仕組みが違い、コードがシートの中(CommandButton1_Click など)に書かれています。マクロの登録が見当たらないボタンは、こちらを疑います。

社内のマクロを棚卸しする

対策の最初の一歩は、社内にどんなマクロがあるかを一覧にすることです。作った人が在籍しているうちに始めるのが理想です。

マクロの入ったファイルを探す

マクロは、決まった形式のファイルにしか保存できません。共有フォルダやPCの中を、次の拡張子で探します。

  • .xlsm(マクロ有効ブック)
  • .xlsb(バイナリ形式のブック)
  • .xls(古い形式のブック)

エクスプローラーの検索欄に「.xlsm」と入れると、フォルダの中のマクロ有効ブックをまとめて探せます。ふつうのExcelの形式(.xlsx)には、マクロを保存できません。

もう一つ見落としやすいのが、個人用マクロブック(PERSONAL.XLSB)です。

作った人のPCの XLSTART というフォルダに保存され、Excelを起動するたびに裏で開くため、そのPCでしか使えないマクロがここに入っていることがあります。

退職者のPCを初期化したり処分したりする前に、個人用マクロブックと、デスクトップやドキュメントに置かれたマクロ付きのファイルを必ず確かめてください。初期化した後では取り出せません。

棚卸し表に書く項目

見つけたマクロは、一つずつ表に書き出します。記入例は次のとおりです。

項目記入例
ファイル名と置き場所月次売上集計.xlsm(共有フォルダの経理)
マクロ名月次売上集計
何をするか売上データを商品別・月別に集計し、月次報告書シートに書き出す
使う人とタイミング経理の担当者、毎月の締め日
作った人と直せる人作った人は〇〇さん(退職予定)、直せる人はいない
止まったときの影響大(月次報告が出せない)
引き継ぎの資料なし

「止まったときの影響」が大きく、直せる人がいないマクロから手を付けます。影響が小さく使う頻度も低いものは、後回しにするか、使うのをやめる選択肢もあります。

業務全体の棚卸しの進め方は、属人化の洗い出しで町工場がつまずく理由で棚卸しのフォーマットとあわせて紹介しています。

AIでマクロを解読・修正する

コードが読めなくても、ChatGPTやClaudeなどの生成AIに説明させれば、中身の見当はつきます。ここでは頼み方の例を紹介します。

コードの意味を説明させる

VBAエディタでコードをコピーして、AIに次のように貼り付けます。

以下のExcel VBAコードが何をしているか、日本語で説明してください。
また、このコードに問題があれば指摘してください。

(コードをここに貼り付ける)

コードの内容、処理の意図、問題になりそうな箇所を日本語で説明してくれます。すべてを理解できなくても、「このマクロは〇〇のためのものだ」と分かるだけで、対応はしやすくなります。

AIの説明は、棚卸し表の「何をするか」の欄にそのまま使えます。

修正や新しいマクロを頼む

「このコードの〇〇を変えたい」と頼むと、修正したコードを書いてくれます。

このコードの消費税率を8%から10%に変更してください
このコードに「売上金額が0の行はスキップする」という処理を追加してください

既存のマクロを直すだけでなく、新しいマクロをゼロから作ってもらうこともできます。やりたいことを日本語で、シート名と列まで具体的に書くと、狙いに近いコードが返ってきます。

Excelで以下の処理を自動化するVBAマクロを作ってください。
・「受注データ」シートのD列(ステータス)が「出荷済み」の行を
・「出荷済み一覧」シートにコピーして
・コピー後に元のシートの該当行を削除する

返ってきたコードは、VBAエディタの標準モジュールに貼り付けて実行します。ただし、この例のように行を消すマクロは元に戻せないため、次の注意を守ってください。

AIに頼むときの注意

AIにコードを渡す前と、受け取ったコードを動かす前に、次の三つを確かめます。

  • コードの中の取引先名・パスワード・社内のフォルダ名を消してから貼る
  • 元のファイルを複製し、コピーで試す
  • 少ないデータで、AIの説明どおりに動くかを突き合わせる
久野

AIの説明は、もっともらしく見えても外れていることがあります。元のファイルは残したまま、コピーで結果を比べてから置き換えてください。

AIに入れてよい社内の情報の決め方は、生成AIに社内データを渡していい範囲で説明しています。数式もあわせた解読の手順は、次の記事で詳しく紹介しています。

引き継ぎの資料を残す

AIで中身が分かっても、それを残しておかなければ、次の担当者がまた同じ苦労をします。ここでは資料の残し方を三つ紹介します。

操作を録画して残す

マクロを動かしている画面を録画して保存しておくと、手順書を読むより早く伝わります。

Windowsに標準で入っている Snipping Tool では、Windowsキー+Shift+R で画面の一部を録画でき、マイクをオンにすれば説明の声も入れられます。

録画では、次の三つを声で説明します。

  • 何のためのマクロか
  • いつ、どのタイミングで使うか
  • エラーが出たときにどうするか

作った人が在籍しているうちに、本人に説明しながら録ってもらうのがいちばん確かです。文章の手順書もあわせて作るなら、業務マニュアルの作り方が参考になります。

コードにコメントを書き足す

既存のマクロを開き、処理のまとまりごとに日本語のコメントを書き足します。AIに「このコードの意味を1行ずつ日本語で説明してください」と頼めば、コメントの下書きを作れます。

' 売上データの最終行を取得する(A列の一番下の行)
最終行 = ws売上.Cells(Rows.Count, 1).End(xlUp).Row

VBAでは、' から後ろがコメントとして扱われ、処理には影響しません。コメントを足すだけなら計算は変わらないため、最初に手を付けやすい対策です。

変更の記録とバックアップ

マクロを直したときは、いつ・誰が・何を変えたかを記録しておきます。ファイルの中に「変更の記録」というシートを一枚作るだけで十分です。

日付変えた人変えた内容
2026年4月1日〇〇売上金額が0の行を飛ばす処理を追加
2026年9月1日〇〇単価の表の読み取り先を変更

直す前には、必ず元のファイルを別名で残します。直したマクロは、作った人以外のもう一人が動かして確かめるようにすると、直せる人が一人に偏るのを防げます。

マクロを残すか置き換えるか

棚卸しと引き継ぎの資料ができたら、それぞれのマクロを残すか、別の仕組みに置き換えるかを決めます。置き換え先の向き・不向きは次のとおりです。

選択肢向いている場合注意すること
マクロのまま残す使う人が少なく、処理が小さく、変更も少ない引き継ぎの資料と、確かめる二人目を決める
Office Scripts+Power AutomateMicrosoft 365を使っていて、Web版や定時の実行が要るライセンスに含まれるかを確かめる。VBAより使える機能が少ない
Googleスプレッドシート+Apps ScriptGoogle Workspaceが業務の中心コードは書き直しになる
自動化ツール(n8nなど)他のクラウドサービスとデータをつなぐ処理ツールの管理者を社内で決める
業務システムに作り直す複数の人や拠点で使い、請求のように誤りが許されない費用と期間がかかる

この分け方はきれいに分かれるものではなく、一つの業務の中で組み合わせることもあります。

Office Scriptsは、Excelの自動化のためのスクリプトです。Web版・Windows版・Mac版のExcelで動き、スクリプトはOneDriveに保存されます。

Power Automateから定時に動かせる一方で、ブックを開いたときなどに自動で動く仕組みはなく、使えるExcelの機能もVBAより少ないとMicrosoftは説明しています。

そのため、「クラウドにすればマクロと同じことができる」とは限りません。置き換える前に、今のマクロがしていることを棚卸し表で確かめ、置き換え先でできるかを一つずつ見ていきます。

置き換えは、棚卸しで「止まったときの影響が大きく、直せる人がいない」となったマクロから始めます。すべてを一度に移す必要はありません。

マクロ・RPA・AIエージェントの違いはRPA・AIエージェント・マクロの違い、クラウドの自動化ツールは業務自動化ツール比較で比べています。

業務システムに作り直すときの費用は、業務システム開発の費用相場を参考にしてください。

まとめ

この記事の要点
  1. 作った人の退職後は、止まる・直せない・誤りに気づけないの三つが起きる
  2. まず社内のマクロを棚卸しし、影響が大きく直せる人がいないものから手を付ける
  3. AIの説明とコメントで中身を言葉にし、残すか置き換えるかを決める

Excelマクロの属人化は、IT担当者のいない中小企業で特に起きやすい問題です。作った人が退職したあとに「動かない」「直せない」「何をしているか分からない」という三つの問題が起きるおそれがあります。

AIを使えば、コードが読めなくても解読や修正に手を付けられるようになりました。一方で、録画・コメント・変更の記録で中身を残し、影響の大きいものは別の仕組みへの置き換えを考えます。

まずは、今使っているマクロを棚卸しして、「業務に欠かせないか」「誰が作ったか」「引き継ぎの資料があるか」を確かめるところから始めてください。それだけでリスクの全体像が見えてきます。

「マクロが止まるたびに業務が止まる」「退職者が作ったマクロの中身を誰も把握していない」という場合は、当社にご相談ください。

Excelマクロの中身を整理したうえで、保守や引き継ぎのしやすい業務システムへの作り直しをお手伝いしています。

既存のExcelファイルはそのままに、足りない部分だけを補う形にも対応しています。

▶ 無料のオンライン面談を予約する

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

1981年生まれ、名古屋出身。株式会社ニューロシンク代表。

2008年に渡独し、ベルリンで約18年間エンジニアとして活動。ドイツの国家資格である職業訓練プログラム「アプリケーション開発専門IT技術者」を修了後、医療系の自社開発企業でデスクトップ・Webアプリケーションの開発に4年間従事しました。2022年からはドイツの大手SIer「Adesso SE」で、フルスタックエンジニアとしてリードポジションを務めました。

2026年に日本へ帰国し、同年9月に株式会社ニューロシンクを設立。愛知・岐阜・三重の町工場を主な対象に、AI導入と業務システムの改善を支援しています。提案だけで終わらせず、工場に足を運んで一緒に手を動かす。そんな現場に立つAIエンジニアでありたいと考えています。

著書「AI時代の海外移住戦略」

目次