Access

仕様書なしのAccessを調査して改修範囲を決める手順

社内で長年使い続けられているMicrosoft Access(アクセス)の中には、作成者が退職し、仕様書などのドキュメントが一切残されていない「ブラックボックス」状態のものが少なくありません。この記事では、そうした仕様不明なAccessファイルを安全に調査し、トラブルを起こさずに改修範囲を決定するための具体的な手順を、実務に即して分かりやすく解説します。

公開日:2026年7月17日 更新日:2026年7月17日
仕様書なしのAccessを調査して改修範囲を決める手順
目次

この記事で分かること

  • 仕様書のないAccessを調査する際の具体的な手順と着眼点
  • 安全に改修を行うために、手を入れる範囲を決定する明確な基準
  • 実務で発生しやすいトラブルの事例と、それを未然に防ぐための解決策

仕様書のないAccessを調査・改修するリスクと事前調査の重要性

仕様が不明確なままAccessの改修に手を付けると、思いがけないシステムエラーが発生し、日常業務が完全にストップしてしまう重大なリスクがあります。Accessはデータベース、クエリ、画面フォーム、帳票レポート、VBA(マクロ)プログラムがすべて1つのファイルに統合されているため、1箇所の変更がシステム全体に致命的なエラーを引き起こす構造的特性を持っています。そのため、改修に着手する前の丁寧な「事前調査」がプロジェクトの成否を分けます。

事前に十分な現状把握を行わずに改修を強行した場合のリスクと、事前にしっかりと構造を紐解く調査を実施した際のメリットを以下の対比表にまとめました。

評価軸 調査を行わずに改修した場合のリスク 事前に徹底した現状把握を行うメリット
システムの動作保証 クエリやVBAの連鎖エラーにより、予期せぬ画面でシステムが異常強制終了する。 変更が影響する範囲(オブジェクト間の依存関係)が可視化され、不具合を完全に予測できる。
データの健全性 テーブル構造の不整合が発生し、既存のデータが破損したり消失したりする。 テーブル間のリレーションシップ(関連性)を守りつつ、安全にデータ項目を追加・変更できる。
実務へのインパクト 修正完了直後にエラーが多発し、現場の出荷や売上伝票入力といった業務が数日間停止する。 テスト環境での綿密な動作検証が可能となり、実務が停止する致命的トラブルをゼロに抑えられる。
将来的なシステム維持 場当たり的な修正が重なり、システムの複雑性が増して将来的な改修コストがさらに高騰する。 不要な古いコードや使われていないテーブルの整理(クレンジング)ができ、動作が高速化する。

このように、十分な裏付け調査のないまま「おそらく大丈夫だろう」という感覚でプログラムを書き換えることは極めて危険です。データベースの論理的なつながりやデータの参照経路を紐解くための調査ステップを理解することが、安全な保守・改修への第一歩となります。

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

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

仕様書なしのAccessを安全に解読するための5つの実務ステップ

ドキュメントが完全に欠落しているAccessファイルであっても、順序立てて紐解けばその構造と内部ロジックを安全に分析することが可能です。社内で実際に現状調査を進める際は、以下の5つのステップを段階的に実行してください。

ステップ1:テスト用複製ファイルの作成と隔離環境の確保

調査や分析を行う前に、最も重要となるのがオリジナルファイルのバックアップと隔離環境の構築です。絶対に本番環境で稼働しているAccessファイルを直接開いて構造変更を行ってはいけません。対象のファイルをローカルPC上にコピーし、さらに既存のリンクテーブル(SQL Serverや社内ファイルサーバー等に接続されているテーブル)がある場合は、誤って本番用データベースを書き換えないよう、ネットワークを切断したスタンドアロン環境、または検証用データベースに接続先を切り替えたテスト用環境を準備してください。

ステップ2:データベースドキュメンター機能を活用した全体像の抽出

Accessには、システム内のテーブル、クエリ、フォーム、レポートの構成情報をHTMLやテキストとして自動で出力してくれる「データベースドキュメンター」という標準機能が備わっています。リボンの「データベースツール」タブから「データベースドキュメンター」を選択し、すべてのオブジェクトにチェックを入れて実行することで、各定義の詳細情報を一括出力できます。この出力結果をテキストファイル等に保存しておくことで、紙ベースやデジタル文書での検索が容易になり、全体像を俯瞰して調査できるようになります。

ステップ3:テーブル定義とリレーションシップの関連性分析

次に、データが蓄積されている「テーブル」の構造を確認します。リレーションシップウィンドウを開き、どのテーブルがどのようなキー(主キー・外部キー)で結びついているか、関連性(リレーションシップ)を目視で確認しましょう。同時に、各フィールドのデータ型(テキスト型、数値型、日付/時刻型など)を確認します。特に「あるテーブルのIDフィールドが、別のテーブルでは文字列として保持されている」といった不規則な設計が存在する場合、クエリ実行時にエラーの原因となるため、これらの設計ミスを洗い出しておく必要があります。

ステップ4:クエリの抽出ロジックと依存関係の可視化

テーブルに続いて、データの抽出や更新を司る「クエリ」の動きを調査します。クエリは「デザインビュー」だけでなく、必要に応じて「SQLビュー」に切り替えてSQL構文を直接確認することで、どのような結合条件(INNER JOINやLEFT JOIN)や集計処理が行われているかを正確に把握できます。さらに、クエリから別のクエリを参照しているような「多段クエリ」の構造になっている場合は、どの順番で処理が流れるのか、ツリー図やメモを書き留めてデータの流れをフロー化することが極めて重要です。

ステップ5:画面(フォーム)・帳票(レポート)とVBAコードの連動確認

最後に、実際の操作画面である「フォーム」と出力物である「レポート」を確認します。各画面のボタンクリックなどのイベント(イベントプロシージャ)にどのようなプログラムコードが埋め込まれているかを確認するために、VBAエディタ(Alt + F11)を開きます。コードの冒頭に「Option Explicit」が記述されているかを確認し、プログラム内で使用されている変数やSQL文の実行処理を調べます。また、隠しフィールド(画面上では非表示だが裏でデータを受け渡しているコントロール)の有無にも注意を払う必要があります。

調査データを基に安全な「改修範囲」を決定する3つの評価軸

現状の調査が完了したら、次に「どこを、どこまで変更するのか」という安全な改修範囲を決定します。調査で把握した依存関係から、最もエラーが出にくいアプローチを選択することが、トラブルを未然に防ぐポイントです。改修範囲を絞り込む際は、以下の3つの基準を設けて検討を行います。

基準1:データ構造(テーブル定義)に影響を与える変更かどうか

改修内容が「単なる画面レイアウトの変更や、既存データの表示方法の修正」にとどまるのか、それとも「新しい入力項目を増やすためのテーブル構造の追加・変更」を伴うのかを明確に区別します。テーブル構造の変更はシステム全体に影響を及ぼすため、影響レベルは「大」となります。一方で、既存のデータを再利用したクエリの新規追加であれば、既存オブジェクトを壊すリスクがないため、改修範囲を局所的に抑えられます。

基準2:多段クエリや共通VBAモジュールの依存度

修正を加えようとしているクエリやVBAのプロシージャが、社内の他の機能でも流用されている「共通部品」である場合は注意が必要です。一箇所を修正したことで、一見関係のない別のレポートや集計処理がバグを起こし、データ不整合を引き起こすケースが多発するためです。影響が広範囲に及ぶ場合は、共通のロジックに直接手を加えるのではなく、「改修用の個別クエリを新設し、呼び出し側を切り替える」といった影響範囲を遮断する対応を選択します。

基準3:実務業務への影響度と切り戻し(復元)の難易度

万が一、改修した機能に不具合が見つかった際、すぐに「元の状態に戻せるか(ロールバック可能か)」という切り戻し計画を立てておきます。元のAccessファイルを別名保存しておくだけで戻せるような仕様変更であれば問題ありませんが、稼働中のデータベースのデータ自体を大きく加工・更新してしまうようなプログラムの追加の場合、切り戻しは極めて困難になります。切り戻しが困難な領域の改修は、本番適用時の検証時間を十分に確保し、改修範囲を必要最小限に留める設計にシフトする必要があります。

以下の表は、検討すべき改修内容と、それぞれの安全度や取るべき対応方針を分類したマトリクスです。

改修の分類 データ構造への影響 主な改修内容の例 推奨される対応方針
軽微な改修(安全度:高) 影響なし フォームの文言修正、レポートのフォント変更、新規クエリの追加 現行ファイルを別名保存した上で、既存オブジェクトに干渉せず単独で追加・編集を行う。
中規模な改修(安全度:中) 部分的に影響あり 既存クエリの抽出条件変更、画面遷移の追加、既存VBAコードの部分書き換え 該当する処理を実行している関数やクエリの参照元をすべて洗い出し、テスト環境で二重チェックを実施。
大規模な改修(安全度:低) 大きな影響あり テーブルの主キー変更、データ型の変換、システム間連携の仕様変更 社内での修正は避け、データ損失や稼働停止を防ぐために、開発の専門家に現状調査と設計改修を委託する。

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

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

内製で改修を進めるか外部の専門会社へ依頼するかの判断基準

現状の調査によって、Accessファイルの全貌と必要な改修ボリュームが見えてきた段階で、「社内のIT担当者(または自社リソース)だけで改修を安全に行えるか」、それとも「確実な稼働を担保するために外部の専門会社へ依頼すべきか」の判断を下さなければなりません。この境界線を誤ると、途中でプロジェクトが行き詰まり、稼働中の業務に長期的なダメージを与える事態に陥ります。

自社で安全に作業を完結できる判断ライン

社内に基本的なリレーショナルデータベース(RDB)の概念やSQL構文を理解しているメンバーがおり、今回行いたい改修が「レポートのデザイン調整」「すでに蓄積されているデータを別条件で集計するクエリの作成」「テキスト表示用フォームの軽微な配置変更」といった、データの根幹(テーブル定義)に影響を与えない範囲であれば、テスト検証を十分に行うことを前提として、社内で内製対応することが十分に可能です。

外部のプロ(専門開発会社)に任せるべき警戒ライン

以下のような要素が1つでも含まれる場合は、社内での無理な対応は避け、実績を持つシステム開発会社へ初期調査と改修設計の相談を強くお勧めします。

  • VBAプログラムが数千行に及び、複雑な条件分岐が多用されている場合:コードの一部分を書き換えるだけで、無関係の画面で深刻なVBA実行エラーが発生し、プログラム自体が起動しなくなる恐れがあります。
  • テーブルのデータ型変更やリレーションシップの再設計を伴う場合:誤って設定を変更すると、過去に蓄積された数万件に及ぶ顧客データや売上履歴が完全に文字化けしたり、破損して読み込めなくなったりする危険性があります。
  • VBAソースコードに保護パスワードがかけられていて閲覧が制限されている場合:コードを確認するためのロック解除や迂回処理が必要となり、専門知識のないまま無理やりファイルをいじるとファイルそのものが壊れてしまいます。
  • 基幹システムや他の基盤(Web、SQL Serverなど)とリアルタイム連携している場合:接続ポートや認証仕様が少しでもずれると、社内システム全体に影響を及ぼし、企業全体の基幹業務に大きな損失を発生させる要因となります。

このように、システムの構造を「解読」し、エラーのない設計書に落とし込む作業には高度な専門スキルが必要です。業務を絶対に止められない状況であれば、最初の現調調査フェーズだけでもプロに見てもらうことで、無駄なトラブル工数を削減し、スムーズな運用へと早期に移行することができます。

仕様書がまったく残っていないAccessでも、本当に最初の現状調査だけを開発会社に依頼することは可能でしょうか?

はい、十分に可能です。多くの開発会社が「既存システムの解析調査」サービスを提供しています。仕様書がない状態からであっても、専門の技術者が直接AccessファイルからVBAコードやリレーションシップを紐解き、現状の構造を分析した「現状システム構造レポート」を作成することが可能です。まずはこの調査報告を基に、どこまでを社内で修正し、どこからを委託するか判断することをお勧めします。

Accessの調査やテスト改修を進めている最中に、誤って本番データが書き換わってしまうような事態を防ぐにはどうすれば良いですか?

最も重要なのは「ローカル環境(スタンドアロン)で作業を行うこと」です。本番環境の共有サーバー上にあるAccessファイルを直接開いて作業してはいけません。必ずご自身のPCにファイルをコピーし、LANケーブルの抜線やWi-Fiのオフなどでネットワークから物理的に隔離した環境で調査・テストを行います。また、SQL Serverや外部データソースとリンクテーブル接続を行っている場合は、接続情報の定義を削除するか、テスト用のデータベースに向けて設定を上書きしてください。

前任者がVBAコードにパスワード(プロパティの保護)を設定して退職してしまいました。この状態からでも改修はできますか?

VBAプロジェクトにロックがかかっている場合、そのままではコードの閲覧や編集は一切できません。解決策としては、前任者へ連絡してパスワードを確認するのが最善ですが、それが不可能な場合は、専門の修復技術を持つ開発会社に相談することになります。内部構造をバイナリエディタ等で安全に修復し、パスワードロックを解除または解除同等の再ビルドを行ってくれる場合がありますので、あきらめずにご相談ください。

現在稼働している古いAccessを、将来的にはクラウドシステムやWebシステムに刷新したいと考えています。今回の調査は無駄になりますでしょうか?

いいえ、決して無駄にはなりません。むしろWebシステムや新たな基幹システムへ移行するための「最大の足がかり」になります。Accessから新しいプラットフォームへ移行する際、最も困難を極めるのが「現行業務で何をやっているのか(仕様)」の洗い出しです。今回の現状調査によって、どのようなデータ構造を扱い、どのような処理ロジックが必要かが可視化されるため、将来的なシステム刷新(マイグレーション)に必要な「要件定義」の工数を大幅に圧縮できます。

Accessについてのご相談

Accessについてのご相談を受け付けています

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