Excel・VBA

仕様書なしのExcelマクロを調査する手順|テーブル・VBA・帳票の確認方法

仕様書や設計書がないExcelマクロを引き継ぐことになり、どこから手を付ければよいかお悩みの方へ、シートの構造やVBAコード、帳票出力を安全に調査し、全体像を把握するための具体的な手順を詳しく解説します。

公開日:2026年7月3日 更新日:2026年7月3日
仕様書なしのExcelマクロを調査する手順|テーブル・VBA・帳票の確認方法
目次

この記事で分かること

  • 仕様書がないExcelマクロの全体像を安全に把握するための事前準備
  • シートの隠し要素や名前定義、VBAコード構成など具体的な調査手順
  • 自社での調査が難しい場合に、外部業者へスムーズに相談・依頼するコツ

仕様書がないExcelマクロのリスクと調査の重要性

社内で長年便利に使われているExcelマクロ(VBA)であっても、作成した担当者がすでに退職していたり、度重なる仕様変更が口頭でのみ行われていたりして、「最新の仕様書や設計書がどこにも存在しない」というケースは非常に多く見られます。仕様が不明なまま運用を続けることは、企業にとって大きなリスクとなります。

例えば、Windowsのアップデートや新しいバージョンのExcelへの移行があった際、古いコードで書かれたマクロが突然エラーを吐いて動かなくなることがあります。その時、仕様書がないと「本来どのようなデータを取り込んで、どのような計算を経て、何を出力するのが正解なのか」が誰にも分からず、システム復旧までの間、関連する業務が完全にストップしてしまいます。また、エラーを直そうとインターネットで検索した知識だけでむやみにコードを書き換えると、別の見えない機能(他部署向けのデータ出力や過去データの蓄積機能など)を壊してしまう危険性もあります。

そのため、トラブルが起きてから慌てるのではなく、マクロが辛うじてでも動いている今のうちに既存ファイルを調査し、「何がどうなっているのか」の現状を把握(リバースエンジニアリング)しておくことが、業務継続において非常に重要になります。完全な仕様書を専門家のようにイチから作り直す必要はありません。本記事で紹介する手順に沿って、重要なポイントだけをメモに残すだけでも、いざという時の立派な調査資料となります。

調査の第一歩は業務フローと入出力の確認から

仕様不明のマクロを調査する際、いきなりVBAの開発画面(VBE)を開いてプログラムのコードを1行ずつ読み解こうとするのは、挫折の大きな原因になります。プロのシステムエンジニアであっても、まずは「外側からの動き」を確認することから始めます。マクロの中身のプログラムに触れる前に、まずは実際にそのマクロを使って業務を行っている現場の担当者にヒアリングを行い、業務フロー全体におけるマクロの立ち位置を確認しましょう。

この段階では、以下の表のような「インプット(入力)」「プロセス(処理内容)」「アウトプット(出力)」の3つの視点で情報を整理すると、マクロの全体像が格段に掴みやすくなります。

確認すべき視点 具体的な調査項目・ヒアリング内容 調査によって得られる情報・目的
インプット(入力) 手入力か、基幹システムからダウンロードしたCSVか、別ファイルか データの発生源と、マクロ実行前に必要な準備作業を特定する
プロセス(処理) どのシートの、どのボタンを押すとマクロが動き始めるのか マクロの起動条件(トリガー)と、ユーザーの操作手順を明確にする
アウトプット(出力) PDF作成、別ファイル保存、プリンターでの印刷、メール送信など マクロが最終的に業務に提供している「価値(ゴール)」を把握する

この表を埋めるだけでも、「このマクロは毎朝9時に販売管理システムから出したCSVを取り込んで、部署別の売上日報PDFを作るためのものだ」といった目的が明確になります。目的が分かれば、後からVBAのコードを見た時に「この部分はPDFを作るための処理だな」と推測しやすくなり、解読の難易度が大きく下がります。

修正で済むか、作り直すべきか迷ったら

現状を確認し、修正・保守・刷新のどれが現実的かを整理します。

Excelシート上のデータ構造と隠し要素の調査手順

マクロの目的が把握できたら、次はExcelファイル自体の構造を調査します。VBAはExcelのシートと密接に連携して動くため、シート側に仕掛けられた設定を確認することが不可欠です。特に以下の3つのポイントは、マクロの動作に直結するため念入りにチェックしてください。

非表示シートと非表示行・列の確認

マクロは、ユーザーに見せる必要のない計算用のデータ、処理の途中経過、またはシステムのパラメーター(設定値)を「非表示シート」に隠し持っていることがよくあります。Excelの画面下部にあるシート見出し(タブ)を右クリックし、「再表示」が選べる状態であれば、隠れているシートが存在します。これらを一時的に再表示し、どのようなデータが格納されているかを確認しましょう。同様に、画面上は見えない非表示の行や列に、マクロがデータを照合するための重要な顧客IDや商品コードなどが隠されていることもあります。

名前の管理(名前定義)のチェック

VBAのコード内で特定のセルを指定する際、「A1」や「C10」といった絶対的な番地ではなく、「売上合計セル」「入力エリア」といった独自の「名前」をつけて管理していることが多々あります。これは、ユーザーが行や列を挿入した際にセル番地がズレてマクロがエラーになるのを防ぐためのテクニックです。Excelのリボンメニューにある「数式」タブから「名前の管理」を開くと、そのファイル内に設定されている独自の名前と、それがどのシートのどのセル範囲を指しているかの一覧を確認できます。ここに登録されている名前は、マクロから呼び出されている可能性が極めて高い重要な要素です。

テーブル機能と条件付き書式の設定

データが入力されている範囲が、単なるセルの集まりではなくExcelの「テーブル機能(ListObject)」として設定されているか確認します。テーブル化されている場合、データが増減しても自動的に範囲が拡張されるため、マクロ側でもテーブルとしてデータを扱っているはずです。また、マクロが処理を終えた後に、特定の数値が赤くなるなどの見栄えの変化がある場合、マクロが直接色を塗っているのか、それともシート側の「条件付き書式」で色がつくようになっているのかを切り分けて確認しておくと、後々の改修時のトラブルを防げます。

VBAコードの構成と処理の入り口を見つける手順

シートの調査が終わったら、いよいよVBAのプログラム部分(裏側)の調査に入ります。対象のファイルを開いた状態で、キーボードの「Alt」キーを押しながら「F11」キーを押し、VBE(Visual Basic Editor)を起動します。プログラミングの専門知識がなくても、以下の手順で「どのような構成になっているか」を調べることは十分に可能です。

VBAパスワードロックの有無の確認

VBEの左側にある「プロジェクト – VBAProject」というウィンドウに表示されているファイル名をダブルクリックします。このとき、パスワード入力画面が出た場合は、VBAに閲覧ロックがかかっています。パスワードが分からないとこれ以上の調査ができないため、過去の引継ぎ資料を探すか、専門業者へロック解除・解析の相談をする必要があります。パスワードがかかっておらず、中身のフォルダ(モジュール)が展開できれば調査を進められます。

モジュールの種類と役割の把握

VBAのコードは、いくつかの「モジュール」と呼ばれる場所に分かれて記述されています。主に以下の3種類を確認し、それぞれに何が書かれているかをざっくりと把握します。

  • 標準モジュール:一般的なマクロの処理が書かれているメインの場所です。「Module1」「Module2」といった名前で複数存在することがあります。まずはここを開いて、どのような処理が書かれているか全体を眺めてみます。
  • ユーザーフォーム(UserForm):専用の入力画面(ダイアログボックス)が存在する場合、ここに画面の設計データや、画面上のボタンを押した時の処理が格納されています。
  • シートモジュール(ThisWorkbook / Sheetなど):特定のシートを選択した時や、ファイルを開いた瞬間に自動で動く処理(イベントプロシージャ)はここに書かれています。「マクロのボタンを押していないのに勝手に動く機能」がある場合は、ここを優先して調査します。

ボタンとマクロの紐付け確認(処理の入り口)

「このボタンを押すと、どのプログラムが動くのか」という処理の入り口(エントリーポイント)を特定します。Excelシート上にあるマクロ実行ボタンを「右クリック」し、「マクロの登録」を選択します。すると、そのボタンに紐付いているマクロの名前(例:出力処理_Click など)が表示されます。その名前をメモし、VBEの標準モジュールの中から検索機能(Ctrl + F)を使って見つけることで、プログラムの開始地点を特定できます。

修正で済むか、作り直すべきか迷ったら

現状を確認し、修正・保守・刷新のどれが現実的かを整理します。

帳票出力と外部連携ファイルの仕様を確認する

マクロの目的の多くは、大量のデータを加工して「何らかの形(帳票やレポート)で出力すること」です。最後に、この出力部分の仕様と、外部との連携状況を調査します。

テンプレート(雛形)シートの存在確認

請求書や納品書などをExcelで出力するマクロの場合、VBAのコードを使ってイチから罫線を引いたり文字の大きさを変えたりしているケースは少なく、多くは「非表示にされたテンプレート用のシート」を裏でコピーして、そこに計算結果のデータを流し込む仕組みになっています。シートの調査で見つけた隠しシートの中にテンプレートがないか確認し、どこにどのデータが転記されるようになっているのか、レイアウトの仕様を確認します。

ファイルの保存先(ハードコーディングの罠)

マクロがPDFやCSVを自動保存する仕様の場合、プログラムの中に保存先のフォルダパス(例:C:\Users\Desktop\売上データ など)が直接文字列として書き込まれている(ハードコーディングされている)ことがあります。この場合、マクロを実行する担当者のパソコンが変わったり、共有サーバーのフォルダ名が少しでも変わったりすると、「保存先が見つかりません」というエラーになり動かなくなります。VBAのコード内で「.SaveAs」や「.ExportAsFixedFormat」といった保存に関わるキーワードを検索し、パスがどのように指定されているかを確認しておくと、環境移行時のトラブルを未然に防げます。

自社での調査が難しい場合の安全な相談方法

ここまで解説した手順を一つずつ実施すれば、仕様書がないExcelマクロでもかなりの部分まで現状を把握することができます。しかし、何千行にも及ぶ複雑なプログラムであったり、AccessやSQL Server等の外部データベースと連携しているような高度なシステムの場合、専門知識のない方が全容を解明するのは非常に困難です。無理に調査を進めて誤ってファイルを壊してしまう前に、既存システムの保守や調査を得意とする外部のシステム開発会社へ相談することをおすすめします。

専門業者に依頼する際は、実際のファイルを渡して直接見てもらうのが最も確実で早いです。ただし、情報漏洩を防ぐため、個人情報や売上金額などの実データを「テスト株式会社」「1000円」などのダミーデータに書き換えた「調査用ファイル」を作成してから渡すようにしましょう。本記事の最初で整理した「インプット・プロセス・アウトプット」のメモと一緒にダミーファイルを渡せば、業者は非常にスムーズに解析を行うことができ、結果として無駄な調査費用を抑え、適正な価格での改修・保守プランの提案を受けることが可能になります。

仕様書が全くなく、社内の誰も中身が分からない状態でも外部業者は改修できますか?

はい、技術力と既存システムの保守実績がある専門業者であれば十分に可能です。プロのエンジニアが既存のVBAコードを読み解き(リバースエンジニアリング)、現状の仕様を解析した上で、エラーの修正や機能の追加を行います。ただし、解析作業には一定の時間と工数がかかるため、本記事で紹介したような「マクロの目的」や「業務フロー」だけでも事前に整理してお伝えいただくと、調査費用を安く抑えることができます。

VBAにパスワードがかかっていて中身が見られません。それでも相談可能ですか?

ご相談可能です。多くのシステム開発会社では、専用のパスワード解析ツールを用いたロック解除の対応や、それが技術的に不可能な場合でも「現在のマクロの動き(入力と出力の結果)」を元に、全く同じ機能を持つ新しいマクロとして作り直す(リプレイスする)などの解決策をご提案できます。お問い合わせの際に「パスワードが不明である」旨をお伝えいただければスムーズです。

外部業者に調査を依頼する際、実際のデータを渡すのがセキュリティ上不安です。どうすればよいですか?

情報セキュリティを守るため、多くの開発会社では調査・お見積もりの段階で秘密保持契約(NDA)を締結することが可能です。また、機密情報を守る最も確実な方法は、顧客名や金額などの実データを仮の数値(ダミーデータ)に一括置換した「調査用ファイル」をご自身で作成してお渡しいただくことです。列や行の構造さえ崩さなければ、ダミーデータでもエンジニアは正確な調査が可能です。

Excelマクロの調査を依頼した場合、費用や期間はどのくらいかかりますか?

マクロの規模やコードの複雑さ、画面の数によって大きく変動するため一概には言えませんが、簡易なマクロであれば数万円程度の調査費用・数日で済むこともありますし、大規模なものであれば数十万円単位になることもあります。現状のファイル(ダミーデータ)をお見せいただければ、無料で概算のお見積もりや調査の方向性をご提示できるケースが多いので、まずは一度ご相談いただくことをおすすめします。

これを機に、仕様不明のExcelマクロをやめてAccessやWebシステムに移行すべきでしょうか?

現在のExcelマクロが「データ量が数万行を超えて動作が重い」「複数人で同時に編集してよくファイルが壊れる」「セキュリティの管理が難しい」といった課題を抱えている場合は、AccessやWebベースのシステムへ移行する良いタイミングと言えます。既存ファイルの調査と合わせて、御社の業務に最適なシステム環境への移行ロードマップをご提案することも可能です。

Excel・VBAについてのご相談

Excel・VBAについてのご相談を受け付けています

現状の課題をお聞きし、最適な進め方をご提案します。まずはお気軽にご相談ください。