なやみ箱 暮らしと日常の悩みを、手順で解決するサイト

前任者が残したExcelマクロが解読できない・動かない

2026年8月時点
■ 先に結論

先に中身を読もうとせず、①マクロ入りのファイルを数える ②今も使われているか ③そもそも動くか、の順に棚卸しします。読むのは、絞り込んだ残りからで構いません。
VBA(マクロを書くための言語)が読めなくても、コードをAIに貼り付けて「日本語で説明して」と頼めば見当はつけられます。
動かないものは、原因を突き止めるより、必要な出力から作り直すほうが早いことがあります。

引き継ぎ資料がないまま退職者のブックだけが残り、開いていいのか消していいのかも分からない。この手詰まりは、担当が替わる職場で何度も持ち込まれてきた形です。つまずきやすいのは、最初にコードを読もうとしたときです。読む前に数を減らします。

※2026年8月時点のMicrosoft等の公式資料に基づき、Windows 11のパソコン版Excelを前提に説明しています。Windows 10で操作が変わる箇所は手順の中で補足します。機種・バージョンにより画面の表記が異なる場合があります。

手順1: マクロが入っているファイルを数える

マクロ(Excelの操作を自動で実行する仕組み)が入っている可能性は、拡張子(ファイル名の最後の「.xlsx」などの部分)で絞り込めます。2007年以降の標準形式(Open XML形式)では「x」で終わる .xlsx などにマクロは入れられず、「m」で終わる .xlsm .xltm と、アドイン(追加機能)の .xlam が持てます(Microsoft公式(Open XML形式の拡張子))。古い形式の .xls(Excel 97-2003)、バイナリ形式の .xlsb、古いアドインの .xla にも入ります(Microsoft公式(サポートされるファイル形式))。拡張子で分かるのは「入れられるかどうか」までで、.xlsm でも中身が空のことはあります。

  1. エクスプローラー(Windowsでファイルを探す画面)で共有フォルダーや前任者の作業フォルダーを開きます(拡張子が見えないときは、上部の「表示」メニュー →「表示」→「ファイル名拡張子」にチェック。Windows 10では「表示」タブの中の「ファイル名拡張子」にチェック)。
  2. 右上の検索ボックスに ext:=".xlsm" のように = を付けて入力します。= が無いと前方一致になり、ext:.xls では .xlsx や .xlsm まで出ます(文字列の項目は前方一致が既定で、完全一致は System.FileExtension:=".txt" の形だとMicrosoftは説明しています。Microsoft公式(検索の書き方))。ext:=".xls" ext:=".xlsb" ext:=".xltm" ext:=".xlt" ext:=".xlam" ext:=".xla" も同じように調べます。
  3. 共有フォルダーでは検索が終わらない・1件も出ないことがあります。その場合は検索に頼らず、フォルダーを開いて「種類」の列で並べ替えると「Microsoft Excel マクロ有効ワークシート」がまとまって見えます。
  4. ファイル名・置き場所・更新日時を書き出します(書き出す形は手順6の【マクロ棚卸し表】のとおりです。先に空の表を作っておくと、以降の手順の結果をそのまま埋められます)。
  5. Excelの「ファイル」→「オプション」→「アドイン」で、前任者が入れたアドインも見ます。

前任者のパソコンの中だけにあるマクロもあります。個人用マクロブック(Personal.xlsb)といい、そのパソコンでExcelを開くたびに読み込まれます(Microsoft公式(個人用マクロブック))。ブックにコードが無いのに動いていたなら、端末が残るうちに情報システム部門へ相談します。

手順2: 今も使われているかで仕分ける

コードは見ずに、更新日時・出力先の成果物の日付・関係者への一言を材料に3つへ分けます。

  • ① 定期的に使われている — 誰かが「毎月押しています」と言えるもの。
  • ② たまに使う — 決算・棚卸し・年度切り替えなど、年に1回程度。
  • ③ 誰も使っていない — 更新日が古く、利用者を名指しできないもの。

③はこの時点で読む対象から外して構いません(消すのは後です)。

開く前に: 出所が分からないマクロは有効化しない

マクロは悪意のあるプログラムを配る手口にも使われるため、Microsoftはインターネット経由で入手したファイルのマクロを既定でブロックしています(Microsoft公式(マクロのブロック))。「セキュリティ リスク」の帯(「コンテンツの有効化」ボタンが無い帯)が出たら、まず情報システム部門に相談してください。社内の共有フォルダーのファイルでも同じ帯が出ることがあり、「ブロック解除」が表示されない・オンにしても効かない場合があるとMicrosoftは説明しています。

(参考)右クリック→「プロパティ」→「全般」タブの「ブロック解除」で解除する方法もありますが、これは自分が作った・自分が送ったなど出所を自分の言葉で説明できるファイルに限った操作です。前任者が残したファイルや、見覚えのない添付ファイルは当てはまりません。マクロの設定を「すべてのマクロを有効にする」に変えるのもMicrosoftは推奨していません(Microsoft公式(マクロの有効と無効))。

手順3: コピーを有効化せずに開いて、コードを取り出す

  1. 原本には触らず、コピーを別のフォルダーに作って開きます。開いた時点で動き出す作りのマクロもあるためです。
  2. 上部に帯(メッセージバー)が出たら、文言をそのまま控えます。この時点では「コンテンツの有効化」を押しません。押さない限りマクロは動かず、開いた瞬間に動き出す作りのものも止まったままです。コードを読むだけなら有効化は要りません。ボタンが無い赤い帯(「セキュリティ リスク」)が出たときは、ひとつ前の節に戻ります。
  3. 「開発」タブの「Visual Basic」を押します(またはAltキーを押しながらF11)。「開発」タブが無ければ「ファイル」→「オプション」→「リボンのユーザー設定」の「メインタブ」で「開発」にチェック(Microsoft公式(開発タブの出し方))。
  4. Visual Basic Editor(コードを見る画面)が開きます。左側の「プロジェクト」欄(見当たらなければCtrlキーを押しながらR)に Sheet1 ThisWorkbook 標準モジュール などが並びます。コードは1か所にまとまっていません。それぞれをダブルクリックし、右側のコードをクリックしてCtrlキーを押しながらAで選び、Ctrlキーを押しながらCでコピーします。CtrlキーとAで選べるのは、いま開いている1つ分だけです。並んでいる数だけ繰り返し、中身が空のものは飛ばします。
  5. ThisWorkbookWorkbook_Open という行があれば、そこが「開いた瞬間に動く」部分です。手順4で真っ先に説明させます。
  6. 「開発」タブの「マクロ」(またはAltキーを押しながらF8)の一覧に並ぶのは、名前を選んで実行できるものだけで、開いた時に自動で動くコードは一覧に出ません(公式のサンプルでも Private Sub Workbook_Open() という書き方で、この形はマクロ名として並びません。Microsoft公式(Workbook.Openイベント))。一覧が空でも「マクロは無い」とは限りません。4で取り出したコードで判断します。

コードが出ずパスワードを求められる場合などは、VBAプロジェクトに表示のロックがかかっている可能性があります(文言はバージョンで異なります。Microsoft公式(VBAプロジェクトの保護))。知る人が退職していれば読むのは諦め、手順6の「作り直す」に回します。

手順4: AIにVBAを貼って、日本語で説明させる

手順3でコピーしたコードは、AI(ChatGPTなどの生成AI)に説明させると、読み解きの手がかりになります。頼み方そのもののコツはChatGPTに聞いても思った通りの答えが返ってこないにまとめています。貼り付ける前に社内ルールを確認し、コード内の取引先名・氏名・メールアドレスを 会社A 担当者B に置き換えます。個人情報保護委員会も生成AIの利用に注意喚起を出しています(2023年6月2日公表)。

手順3で複数の場所からコピーしたときは、どこから取ったか(ThisWorkbookModule1 など)を書き添えて、まとめて貼ります。一部だけを貼ると、断片だけを見た説明が返ってきます。

1. 何をするマクロかを説明させる

あなたはExcelのVBAに詳しい人です。
これは前任者が残したマクロで、私はVBAを読めません。
次のコードについて、専門用語をなるべく使わずに日本語で説明してください。

1. 結局なにをするマクロか1文で、次に上から順の流れを箇条書きで
2. 触っているファイル・シート・セル範囲・保存先の一覧
3. 元に戻せない操作(上書き保存・削除・送信など)があれば、その行と理由
4. 前任者のパソコンでしか動かない可能性がある箇所
   (決め打ちの保存場所、特定のファイル名、外部の部品への依存)
5. コードだけでは分からないので、私が社内で確認すべきこと

--- ここからコード ---
【ここにVBAを貼り付け】
--- ここまで ---

2. 動かない原因を絞らせる

次のVBAを実行したら、下のエラーが出ました。
考えられる原因を、可能性の高い順に3つまで挙げてください。
それぞれ、私が画面上で確認する手順を、どこを押すかまで書いてください。
書き換えを提案する場合は、書き換える前の行と後の行を並べて示してください。

エラーの文言: 【画面に出た文言をそのまま】
止まった行  : 【黄色く強調されていた行】

--- ここからコード ---
【ここにVBAを貼り付け】
--- ここまで ---

AIの説明はコードの言い換えなので、業務上なぜその処理が要るのかまでは分かりません。説明を確かめる手順はChatGPTの答えが本当かどうか信用できないにあります。

手順5: 説明を確かめてから、コピーで動かす

  1. 手順4の答えに、上書き保存・削除・メール送信・別のフォルダーへの書き出しなど、元に戻せない操作が挙がっていないか見ます。挙がっていたら、その行の意味を社内で確認できるまで実行しません。
  2. コピーで守れるのは、いま開いているそのファイルだけです。別の場所への保存・削除・送信は、コピーから実行しても同じように起こります。判断がつかないときは実行せず、情報システム部門に相談します。
  3. 元に戻せない操作が無さそうなら、コピーを開き直して帯の「コンテンツの有効化」を押します。ボタンが無い赤い帯のときは「開く前に」の節へ戻ります。
  4. 「開発」タブの「マクロ」(またはAltキーを押しながらF8)を開き、「マクロの保存先」(表記は版により異なります)をいま開いているファイル名に切り替えます。「開いているすべてのブック」のままだと、個人用マクロブックなど別のブックのマクロも混ざります。一覧に何も出ないときは有効化がまだ効いていない可能性があるので、3に戻ります。
  5. マクロ名を選んで「実行」を押します。エラーが出たら文言をそのまま控え、「デバッグ」が押せる場合は選びます(エラーの種類やロックの有無によっては押せないことがあります。その場合も文言だけは控えておきます)。Visual Basic Editorで止まった行が黄色く強調表示されるので、その行も控えて、手順4の2つ目の依頼文に渡します。

手順6: 残す・作り直す・捨てるを決める

  • 残す — 使われていて、動いて、何をするか説明できるもの。手順4の1つ目の依頼文(プロンプト)の答えを引き継ぎメモにして、ブックと同じ場所に置きます。
  • 作り直す — 使われているのに動かない・読めない・ロックされているもの。コードの復元ではなく、必要な出力(誰が、いつ、何を受け取るか)から作り直します。どこから手を付けるかの選び方は仕事の繰り返し作業を自動化したいけど何から始めればいいか分からないにあります。
  • 捨てる — 使う人がいないもの。処分の前に、社内の文書の保存ルール(保存期間・持ち出し・廃棄の手順)を確認します。いきなり削除せず「休止」フォルダーへ移して日付を書き、しばらく誰も困らなければ、上長や管理部門の指示に従って処分します。
【マクロ棚卸し表】
 ファイル名 / 置き場所 / 最終更新日 / 使っている人 / 使う頻度
 / 開けたか / 動いたか / エラーの文言 / 判断

それでも進まない時のチェックリスト

前任者のコードを全部読める必要はありません。残すものを決めて、その分だけ説明できる状態にするまででかまいません。