マクロの守り中小企業のAI導入支援|Excelマクロ(VBA)の属人化の解消からExcelマクロ(VBA)の引き継ぎ 専門

手順

他人が作った VBA の読み方|VBE で開いて最初に見る7か所と、手で読むのをやめる目安

他人が作った VBA を読むとは、どこから処理が始まり、どのシートやファイルを読み書きして、何が出るのかを順に確かめることです。最初に見るのは、自動で動く入口・ボタンの登録・参照設定・直書きの4つで、複製を開けばコードを動かさずに確かめられます。数千行を超えて手に負えないときの読み解きの依頼は、一式30万円〜です(2026年10月時点)。

書いた人
ai-dounyuu.com 主宰(元AIエンジニア(中小企業のAI導入支援))
公開
更新
事実の確認

結論:他人の VBA はどの順番で読むか?

複製を開き、自動で動く入口とボタンの登録を見つけ、参照設定と直書きを確かめてから、コンパイルとステップ実行で流れを追います。

  1. 複製を、信頼できる場所でないフォルダーで開く

    期間:数分/成果物:マクロが無効のまま開いた複製

  2. Alt+F11 でモジュールを数える

    期間:数分/成果物:標準モジュール・シート・ThisWorkbook・フォーム・クラスの一覧

  3. 自動で動く入口とボタンの登録を書き出す

    期間:数十分/成果物:入口の一覧

  4. 参照設定と直書きを確かめる

    期間:数十分/成果物:参照不可のライブラリー、シート名・パス・Declare・Outlook の行

  5. コンパイルとステップ実行で流れを追う

    期間:処理の量による/成果物:入口ごとの流れと、読み書きするシート

  6. 引き継ぎ書に書き残す

    期間:処理の量による/成果物:動かし方・戻し方・読み書きするシート・直してよい所

読むのは必ず複製です。原本で試すと、集計の途中で止まったときに元の数字が分からなくなります。このページは、他人のコードを読む順番だけを扱います。全体の進め方は6段階の手順にあります。

マクロを動かさずに中身を見るには?

複製を開いたときに出る「マクロが無効にされました」の帯で、コンテンツを有効にしないまま Alt+F11 を押すと、VBA の画面(VBE)でコードを読めます。

複製は、信頼できる場所(Trusted Location)に指定していないフォルダーに置きます。信頼できる場所や、以前に有効にしたことのあるファイルでは、開いた時点でマクロが動きます(Microsoft Learn)。メールやブラウザから来たファイルは「セキュリティリスク」の帯が出て止まりますが、コードを読むだけならそのままで構いません。止まる仕組みは「セキュリティリスク」でマクロが止まるときの直し方にあります。

どこから処理が始まるかは、どう見つけるか?

ThisWorkbook の Workbook_Open、シートの Worksheet_Change などのイベント、Auto_Open という名前のプロシージャ、ボタンに登録されたマクロの4つが入口です。

ボタンは右クリックの「マクロの登録」で、呼ばれるプロシージャの名前が分かります。図形やフォームのボタンも同じです。入口を全部書き出すと、ほかは入口から呼ばれる部品か、どこからも呼ばれない古い処理のどちらかになります。呼び出し関係を1枚の図にする方法はマクロの処理を図にして読み解くにあります。

参照設定と直書きは、なぜ先に見るのか?

PC やフォルダ、シート名を変えたときに止まる所が、この2つに集まっているからです。

VBE の[ツール]→[参照設定]で、「参照不可」と付いたライブラリーがあれば、その PC では動きません。VBScript の正規表現(Microsoft VBScript Regular Expressions)を参照していれば、VBScript の廃止の影響を受けます。

直書きは、検索(Ctrl+F)で Sheets("、Workbooks.Open、:\、Declare、CreateObject("Outlook を探すと見つかります。Declare 文に PtrSafe が無ければ 64bit 版の Office で止まり、Outlook を呼ぶ処理は新しい Outlook では動きません(Microsoft Learn)。

流れを追うときに、何を使うか?

[デバッグ]→[コンパイル]で文法の誤りと参照の抜けを先に洗い出し、F8 のステップ実行で1行ずつ進めて、変数の値をローカルウィンドウで見ます。

モジュールの先頭に Option Explicit が無いと、打ち間違えた変数名でもエラーにならず、空の値のまま進みます。ステップ実行は、外部ファイルへの書き込みやメールの送信の行の手前で止め、複製のデータで試します。シート名や列を変えたときにどう壊れるかはシート名や列を変えるとマクロはどう壊れるかにあります。

手で読むのをやめて頼むのは、どんなときか?

入口が10を超える、ブックどうしが互いを開き合う、外部ファイルを何本も読む、のどれかに当てはまれば、手で追うより解析ツールで数えて図にするほうが早くなります。

確かめること答え向く方式
入口の数数個まで手で読み、引き継ぎ書を書く
入口の数10を超える解析ツールで呼び出し関係を図にしてから読む
ブックどうしのつながり互いを開いて書き込む全ブックをまとめて解析し、依存の図を作る
PC を替えると止まる行Declare・Outlook・VBScript の参照がある直す前に、今の PC の版と 32bit/64bit を書き残す

読み解いた内容は、動かし方・戻し方・読み書きするシート・直してよい所の4つに分けて書き残します。ひな形はVBA の引き継ぎ書のひな形にあります。

よくある質問

VBA のコードを AI に読ませてもよい?
説明の下書きには役立ちます。会社のデータが入ったシートは渡さず、入力が学習に使われない設定かを先に確かめます。
VBA にパスワードがかかっていたら?
作った人や前の担当者の資料を探すのが先です。御社が権利を持つブックかどうかを確かめてから、次の手を考えます。
どの処理が使われていないか分かる?
入口から呼ばれないプロシージャは、使われていない候補です。消さずに印を付け、担当者に確かめてから外します。

作った人がいないマクロを、次の人が直せる形に。

小さな相談からで構いません。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。準備は要りません。

無料で相談する

頼み先の比較/5年総額の計算機

出典

  1. Microsoft Learn「Macros from the internet are blocked by default in Office」(2026年10月16日確認)
  2. Microsoft Learn「Compatibility between the 32-bit and 64-bit versions of Office」(2026年10月16日確認)
  3. Microsoft Learn「Identify COM add-ins in your organization」(新しい Outlook と VBA)(2026年10月16日確認)
  4. Microsoft 365 Developer Blog「How to prepare VBA projects for VBScript deprecation」(2025年9月9日)(2026年10月16日確認)

変更履歴

更新:このページの範囲(読む順番だけ)を先頭に書いた
公開:VBA の読み解き方の手順を載せた