結論:他人の VBA はどの順番で読むか?
複製を開き、自動で動く入口とボタンの登録を見つけ、参照設定と直書きを確かめてから、コンパイルとステップ実行で流れを追います。
複製を、
信頼できる 場所でない フォルダーで 開く Alt+F11 で
モジュールを 数える 自動で
動く 入口と ボタンの 登録を 書き出す 参照設定と
直書きを 確かめる コンパイルと
ステップ実行で 流れを 追う 引き継ぎ書に
書き残す
読むのは必ず複製です。原本で試すと、集計の途中で止まったときに元の数字が分からなくなります。このページは、他人のコードを読む順番だけを扱います。全体の進め方は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 にパスワードがかかっていたら?
- 作った人や前の担当者の資料を探すのが先です。御社が権利を持つブックかどうかを確かめてから、次の手を考えます。
- どの処理が使われていないか分かる?
- 入口から呼ばれないプロシージャは、使われていない候補です。消さずに印を付け、担当者に確かめてから外します。
作った人がいないマクロを、次の人が直せる形に。
小さな相談からで構いません。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。準備は要りません。
無料で相談する出典
- Microsoft Learn「Macros from the internet are blocked by default in Office」(2026年10月16日確認)
- Microsoft Learn「Compatibility between the 32-bit and 64-bit versions of Office」(2026年10月16日確認)
- Microsoft Learn「Identify COM add-ins in your organization」(新しい Outlook と VBA)(2026年10月16日確認)
- Microsoft 365 Developer Blog「How to prepare VBA projects for VBScript deprecation」(2025年9月9日)(2026年10月16日確認)
変更履歴
| 更新:このページの範囲(読む順番だけ)を先頭に書いた | |
| 公開:VBA の読み解き方の手順を載せた |