概要
| この記事の結論 Accessには「名前の自動修正(Name AutoCorrect)」があり、テーブル名やフィールド名などの変更を名前マップで追跡し、依存するオブジェクトの参照を自動修正できます。ただし、追跡を有効にしただけでは修正は実行されず、VBAやマクロ内のテーブル名・クエリ名・フィールド名は自動修正されません。実務では、バックアップと依存関係の確認を行い、変更後に主要機能を必ずテストすることが重要です。 |
この記事でわかること
- 「名前の自動修正」の設定場所と、3つのオプションの違い
- テーブル名・フィールド名を変更したときに、どこまで参照が更新されるのか
- 自動修正されるものと、VBA・マクロなど自動修正されないもの
- 名前マップと「オブジェクトの依存関係」を使った影響範囲の確認方法
- 名前の自動修正が反映されない原因と、安全に名称を変更する実務手順
この記事の主な内容
- Accessの「名前の自動修正」とは?まず30秒で仕組みを理解
- 名前の自動修正を有効にする方法|3つのオプションを正しく設定
- テーブル名・フィールド名を変更すると何が自動修正される?実例で確認
- 名前の自動修正で直るもの・直らないもの|VBA・マクロは要注意
- 自動修正が反映されない原因と対処法|古いDB・名前マップ・依存関係を確認
- テーブル名を安全に変更する実務手順|バックアップ・影響調査・動作確認
- まとめ|名前の自動修正を過信せず、影響範囲を確認して変更する
- よくある質問(FAQ)
想定読了時間:約10分~12分
1. Accessの「名前の自動修正」とは?まず30秒で仕組みを理解
Accessの「名前の自動修正」は、データベースオブジェクトの名前変更によって、別のオブジェクトにある参照が切れるのを防ぐための機能です。Microsoftの説明では、名前変更による問題を検出し、必要に応じて自動修正し、その修正内容をログへ記録できます。
たとえば、あるテーブルを元に複数のクエリやフォームを作成したあとでテーブル名を変更すると、参照先が旧名のままではクエリやフォームが正常に動かなくなる可能性があります。名前の自動修正を正しく有効にしておくと、Accessが名前マップを使って影響を追跡し、対応できる参照を更新します。
重要なのは、この機能が「何でも自動で直す機能」ではない点です。名前変更以外の設計変更や、削除したオブジェクトに起因する問題まで解決するものではありません。また、VBAやマクロ内に記述されたテーブル名・クエリ名・フィールド名は対象外です。

名前マップが「変更前の名前」と依存関係を追跡する
名前の自動修正を追跡する設定を有効にすると、Accessはテーブル・クエリ・フォーム・レポートに名前マップを作成します。名前マップは、オブジェクトの保存・終了などに合わせて更新され、名前変更が他のオブジェクトへ及ぼす影響を判断するために使われます。
この名前マップは「オブジェクトの依存関係」ウィンドウでも利用されます。変更対象のテーブルやクエリがどのフォーム・レポートから利用されているかを事前に確認できるため、名称変更だけでなく、削除や構造変更の影響調査にも役立ちます。
古いAccessで作成したデータベースは設定を確認する
Microsoftは、古いバージョンのAccessで作成したデータベースを新しいファイル形式へ変換した場合、名前変更の追跡が既定で有効になっていないことがあると案内しています。長年運用してきたACCDBや、旧MDBから変換したデータベースでは、「新しいAccessだから自動修正されるはず」と考えず、現在のデータベース設定を確認してください。
2. 名前の自動修正を有効にする方法|3つのオプションを正しく設定
名前の自動修正は、[ファイル]→[オプション]→[現在のデータベース]にある「名前の自動修正オプション」で設定します。設定はAccess全体ではなく、開いているデスクトップデータベースごとに行います。
ここで特に注意したいのが、3つのチェック項目には依存関係があることです。「名前の自動修正情報をトラックする」だけをONにしても、名前変更そのものは自動修正されません。自動修正を実行するには、2つ目の「名前の自動修正を行う」まで有効にする必要があります。

| オプション | 役割 | 前提・注意点 |
|---|---|---|
| 名前の自動修正情報をトラックする | 名前変更を追跡するための名前マップを作成・更新する | これだけでは参照名の自動修正は実行されない |
| 名前の自動修正を行う | 名前マップを使い、変更された名前が他オブジェクトに現れる箇所を修正する | 「トラックする」がONであることが前提 |
| 名前の自動修正の変更を記録する | 自動修正した内容をName AutoCorrect Logテーブルへ記録する | 上の2項目がONであることが前提 |
設定手順

- STEP 1 対象のAccessデータベースを開きます。
- STEP 2 [ファイル]をクリックし、[オプション]を開きます。
- STEP 3 左側のメニューから[現在のデータベース]を選択します。
- STEP 4 [名前の自動修正オプション]で「名前の自動修正情報をトラックする」をONにします。
- STEP 5 名称変更を自動反映したい場合は「名前の自動修正を行う」もONにします。必要なら「名前の自動修正の変更を記録する」もONにします。
- STEP 6 [OK]をクリックします。開いているオブジェクトを閉じるよう求められた場合は、保存状態を確認して指示に従います。
| 「トラックする」だけでは自動修正されません 名前マップを作って依存関係を把握したいだけなら追跡のみでも意味があります。ただし、テーブル名やフィールド名の変更に伴う参照をAccessへ自動修正させたい場合は、「名前の自動修正を行う」まで有効にしてください。 |
3. テーブル名・フィールド名を変更すると何が自動修正される?実例で確認
名前の自動修正が有効な状態では、テーブル名やフィールド名の変更が、依存するクエリ・フォーム・レポートなどの参照へ反映されます。ここでは仕組みを理解しやすいように、単純な例で考えます。
テーブル名を変更する例
「T_売上」というテーブルを元に「Q_売上一覧」というクエリを作成しているとします。あとからテーブル名を「T_売上明細」へ変更した場合、名前の自動修正が正しく機能すれば、クエリが参照しているテーブル名も変更後の名称に合わせて更新されます。
| クエリSQLのイメージ 変更前:SELECT T_売上.処理日, T_売上.金額 FROM T_売上; 変更後:SELECT T_売上明細.処理日, T_売上明細.金額 FROM T_売上明細; |
フィールド名を変更する例
同じテーブルで「処理日」というフィールド名を「売上日」へ変更した場合も、名前マップで追跡できる参照は変更後のフィールド名へ更新されます。クエリの列、フォームやレポートが参照するデータ項目など、名前変更に依存する部分で破損を防ぐために使われます。
ただし、実際のデータベースでは式、VBA、マクロ、外部リンク、SQL固有クエリなどが混在することがあります。そのため「見た目上クエリが開けたから完了」と判断せず、旧名称が残っていないかを検索し、業務シナリオ単位で動作確認してください。

変更ログを残すと、Accessがどこを直したか確認しやすい
「名前の自動修正の変更を記録する」を有効にしている場合、自動修正された内容は「Name AutoCorrect Log」テーブルへ記録されます。大量の名称変更を行うときや、変更後の影響範囲をレビューしたいときは、ログを残して確認できる状態にしておくと安全です。
4. 名前の自動修正で直るもの・直らないもの|VBA・マクロは要注意
名前の自動修正は便利ですが、対象範囲を誤解すると参照切れを見落とします。特に「フォームやレポートの中も修正される」ことと、「フォーム名・レポート名そのものの変更まで追跡される」ことは同じではありません。
Microsoftは、フォーム名・レポート名・コントロール名そのものの変更は追跡されず、マクロやコード内に書かれたテーブル名・クエリ名・フィールド名も自動修正されないと説明しています。したがって、VBAやマクロを多用しているAccessほど、AutoCorrectだけで改修を完結させないことが重要です。

| 対象 | 名前の自動修正の考え方 | 実務上の確認 |
|---|---|---|
| テーブル名・クエリ名・フィールド名の参照 | 名前マップで追跡できる範囲は自動修正の対象 | 変更前後に依存関係とクエリ等を確認 |
| フォーム・レポート内の参照 | 依存するデータソース等の参照更新に利用される | レコードソース・コントロールソース等を確認 |
| フォーム名・レポート名・コントロール名そのものの変更 | 変更は追跡されない | 呼び出し側・式・イベント等を別途確認 |
| マクロ内のテーブル名・クエリ名・フィールド名 | 自動修正されない | マクロを開いて旧名称を検索・確認 |
| VBAコード内の名称 | 自動修正されない | VBEでプロジェクト全体検索を行う |
| 削除や構造変更など名前変更以外の設計変更 | 名前の自動修正では直接解決しない | 依存関係調査と個別修正が必要 |
VBAはプロジェクト全体検索で旧名を探す
VBAからテーブルやクエリを参照している場合は、VBEの検索機能で変更前の名称をプロジェクト全体から探します。DoCmd.OpenQuery、CurrentDb.OpenRecordset、DLookup、SQL文字列など、オブジェクト名を文字列として記述する箇所はAutoCorrectの対象外と考えて確認してください。
| AutoCorrectでは自動修正されないVBA参照の例 Set rs = CurrentDb.OpenRecordset(“T_売上”) DoCmd.OpenQuery “Q_売上一覧” |
5. 自動修正が反映されない原因と対処法|古いDB・名前マップ・依存関係を確認
名前の自動修正がONに見えても、名前マップが十分に更新されていなかったり、対象外の参照を見ていたりすると、期待した修正が行われないことがあります。まず「追跡」「実行」の設定と、名前マップの状態を確認してください。

「オブジェクトの依存関係」で影響範囲を確認する
[データベースツール]タブの[オブジェクトの依存関係]を使うと、選択したテーブル・クエリ・フォーム・レポートが、どのオブジェクトから使われているか、また何に依存しているかを確認できます。Microsoftによると、依存関係は最大4レベルまで表示されます。
ただし、このウィンドウにはマクロとコードモジュールの情報は表示されません。また、ユニオンクエリ・データ定義クエリ・パススルークエリなどのSQL固有クエリやサブクエリには制約があります。依存関係画面だけで100%の影響範囲を把握できるわけではないため、VBA検索や実機テストと組み合わせます。
設計が固定されたDBでは、常時ONにする必要があるか判断する
名前の自動修正は便利な一方で、Microsoftはパフォーマンスに若干の影響を与える可能性があると案内しています。また、名前マップを保持するためデータベースファイルが大きくなることがあります。設計が安定し、今後ほとんどオブジェクト名を変更しないDBでは、変更作業が終わったあとに無効化する運用も検討できます。

| 状況 | ONに向く | OFFを検討 |
|---|---|---|
| 設計変更が多い開発・改修中 | ○ 名称変更の影響を追跡したい | △ |
| 既存DBの命名整理を実施中 | ○ 追跡+実行+必要に応じログ | △ 作業完了後に再判断 |
| 設計が固定された本番DB | △ 変更予定がある場合 | ○ 性能・容量を優先するなら検討 |
| ファイル容量をできるだけ抑えたい | △ | ○ 名前マップ削除で縮小する場合がある |
反映されないときの代表的な原因

| 原因 | 確認ポイント | 対処 |
|---|---|---|
| 「トラックする」だけON | 「名前の自動修正を行う」がOFFになっていないか | 自動修正が必要なら2項目目もON |
| 名前マップ作成を途中で中断 | 初回有効化時などにEscで処理を止めていないか | 追跡設定を入れ直す、または対象オブジェクトをデザインビューで開いて保存 |
| 古いDBを新形式へ変換した | 追跡設定が有効になっているか | 現在のデータベースで設定を確認 |
| 開いているオブジェクトがある | 名前マップ更新時に閉じるよう求められていないか | 保存して閉じ、処理を完了させる |
| VBA・マクロ内に旧名が残る | コードやマクロ内の文字列参照 | 旧名称を検索して手動修正 |
| 依存関係画面に出ない | マクロ・コード、SQL固有クエリ、サブクエリではないか | 別手段で参照元を調査 |
| 更新処理で失敗が発生 | Name AutoCorrect Save Failuresテーブルが生成されていないか | 失敗オブジェクトを特定し、保存・設計状態を確認 |
| テーブル名・フィールド名の変更後、参照エラーや改修範囲に不安がある場合 名前の自動修正だけではVBA・マクロ・外部DB・リンクテーブル等の参照まで完全には追えません。既存Accessのテーブル・クエリ・フォーム・レポート・VBAの依存関係を調査し、命名整理や機能改修、動作テストまで支援します。担当者不在・設計書なしのDBも現状解析から対応可能です。 |
6. テーブル名を安全に変更する実務手順|バックアップ・影響調査・動作確認
業務で使っているAccessの名称変更は、機能をONにしてすぐ実行するより、「戻せる状態」と「影響範囲を把握した状態」を作ってから進める方が安全です。特にオブジェクト数が多いDBでは、名称変更を小さな単位に分けて検証します。

| STEP | 実施内容 | 確認ポイント |
|---|---|---|
| 1 | 原本をバックアップ | 本番ACCDBを別名・別場所へ保存し、更新日時と版を記録 |
| 2 | 依存関係を確認 | 対象テーブル/クエリの「自分に依存するオブジェクト」を確認 |
| 3 | VBA・マクロを検索 | 旧テーブル名・旧クエリ名・旧フィールド名を全文検索 |
| 4 | AutoCorrectを設定 | 追跡+実行をON、必要ならログもON |
| 5 | テストコピーで名称変更 | 一度に大量変更せず、テーブル→フィールドの順など小分けに実施 |
| 6 | ログ・失敗テーブルを確認 | Name AutoCorrect Log/Save Failuresの有無を確認 |
| 7 | 業務シナリオをテスト | 起動・検索・登録・更新・帳票・エクスポート・外部連携まで確認 |
| 8 | 安定後に設定を再判断 | 今後名称変更がなければAutoCorrectをOFFにする選択肢も検討 |
本番DBでは「一括改名」より段階的に進める
命名規則を整理する目的で大量のテーブル名やフィールド名を一度に変更すると、どの変更が不具合の原因になったのか追いにくくなります。変更対象をグループ化し、1グループごとにクエリ・フォーム・レポート・VBA・マクロの確認を行うと、切り戻しや原因特定が容易です。
また、リンクテーブルやODBC接続、外部Excel・CSV連携、他のAccessファイルから参照されるテーブルなどは、1つのACCDB内のName AutoCorrectだけでは完結しません。外部システム側の参照名も含めて影響範囲を整理してください。
7. まとめ|名前の自動修正を過信せず、影響範囲を確認して変更する
Accessの「名前の自動修正」は、テーブル名やフィールド名などの名称変更による参照切れを防ぐための便利な機能です。正しく使うには、「名前の自動修正情報をトラックする」だけでなく、実際に参照を変更したい場合は「名前の自動修正を行う」まで有効にします。修正履歴が必要な場合はログも有効にできます。
一方で、VBA・マクロ内のテーブル名・クエリ名・フィールド名は自動修正されません。フォーム名・レポート名・コントロール名そのものの変更も追跡対象外です。さらに、オブジェクトの削除など名前変更以外の設計問題は別途対応が必要です。
実務では、バックアップ→オブジェクトの依存関係確認→VBA・マクロ検索→名称変更→ログ・失敗確認→業務シナリオテストの順で進めると安全です。設計が固定された本番DBでは、性能やファイルサイズも考慮し、作業後にAutoCorrectを常時ONにする必要があるかを見直しましょう。
| 既存Accessの名称整理・影響調査を安全に進めたい場合 既存Accessの構造解析、テーブル・クエリ・フォーム・レポート・VBAの参照調査、命名整理、改修、動作確認まで対応しています。担当者が退職して設計書がないDBや、名前変更後に「パラメーターの入力」などのエラーが出ているケースもご相談ください。 |
8. よくある質問(FAQ)
いいえ。Microsoftは、マクロまたはコード内に記述されたテーブル名・クエリ名・フィールド名は名前の自動修正で修正されないと説明しています。VBEやマクロ内で旧名称を検索し、必要な箇所を手動で修正してください。
されません。「トラックする」は将来の修正に使う名前マップを作成・更新する設定です。参照名を自動で変更するには「名前の自動修正を行う」も有効にする必要があります。
はい。名前マップで追跡できる範囲では、フィールド名の変更も依存オブジェクトの参照修正に利用されます。ただし、VBA・マクロや対象外の参照が残る可能性があるため、変更後の確認は必要です。
Microsoftは、名前の自動修正がパフォーマンスへ若干の影響を与える可能性があると案内しています。設計が固定され、今後名称変更を行わないDBでは、無効化すると性能改善につながる場合があります。
古いバージョンで作成したデータベースを新しいファイル形式へ変換しても、名前変更の追跡が既定で有効になっていない場合があります。[ファイル]→[オプション]→[現在のデータベース]で設定を確認してください。
クエリやフォーム、レポート、コントロールソース、式、VBA、マクロなどに旧フィールド名や旧テーブル名が残っていないか確認します。特にVBA・マクロはAutoCorrect対象外なので、旧名称で全文検索すると切り分けしやすくなります。
「名前の自動修正の変更を記録する」を有効にしている場合、自動修正の内容は「Name AutoCorrect Log」テーブルに記録されます。更新処理に失敗した場合は「Name AutoCorrect Save Failures」テーブルが作成されることがあります。
バックアップを取得し、オブジェクトの依存関係とVBA・マクロの旧名検索を行ったうえで、テストコピー上で少数ずつ変更してください。変更ごとに主要クエリ・フォーム・帳票・外部連携を確認し、問題がなければ次のグループへ進む方法が安全です。
参考情報
● Microsoft Support|名前の自動修正オプションを設定する
https://support.microsoft.com/ja-jp/access/set-name-autocorrect-options
● Microsoft Support|[オブジェクトの依存関係]ウィンドウを使うと、オブジェクトがどのように関連付けられているかを確認できます
https://support.microsoft.com/ja-jp/access/use-the-object-dependencies-pane-to-see-how-objects-relate
● Microsoft Support|Help Access run faster
https://support.microsoft.com/en-us/access/help-access-run-faster