Access でVisual Basic for Applications参照を解決する方法

元の KB 番号: 824255

注:

この記事は、Microsoft Access データベース (.mdb) と Microsoft Access プロジェクト (.adp) に適用されます。 専門的なコーディング、相互運用性、マルチユーザー スキルが必要です。

概要

この記事では、Microsoft Office Access 2007、Microsoft Office Access 2003、Microsoft Access 2002、Access 2000、または Access 97 が Microsoft Visual Basic for Applications (VBA) の参照を解決するために実行する一連のタスクについて説明します。

詳細情報

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、次の記事番号をクリックして、「Microsoft サポート技術情報: Windows でレジストリをバックアップおよび復元する方法 」322756 の記事を参照してください

Access では、Visual Basic エディターを使用して現在選択されている VBA 参照を表示できます。 これを行うには、次の手順を実行します。

  1. Access を開始します。

  2. Access データベースを開きます。

  3. Alt キーを押しながら F11 キーを押して、Visual Basic Editor を開きます。

  4. [Visual Basic エディター] ウィンドウで、[ツール] メニューの [参照] をクリックします。

    [ 参照 ] ダイアログ ボックスで、選択されている参照を確認できます。

注:

参照を選択すると、参照を使用するために読み込む必要があるファイルに対応する情報を表示することもできます。

関連するファイルは、タイプ ライブラリ、オブジェクト ライブラリ、またはコントロール ライブラリです。 各参照の関連ファイルは、[参照 ] ダイアログ ボックス に表示される情報に従って読み込まれます。 ただし、ファイルが見つからない場合は、コンピューター上の別の場所にあるファイルが検索されます。

選択された VBA 参照ごとに、Access は次のタスクを実行します。

  • Access は、参照先のファイルが既に読み込まれているかどうかを確認します。

  • Access では、参照先のファイルが RefLibPaths 現在読み込まれていない場合にレジストリ キーが存在するかどうかを確認します。

    レジストリ キーが RefLibPaths 存在する場合、Access は、参照と同じ名前の名前の値を検索します。 一致するものがある場合、Access は、名前付き値に記載されているパスから参照を読み込みます。

    注:

    レジストリ キーを RefLibPaths 手動でレジストリに追加し、レジストリ キーの下にあるアドインまたはライブラリの名前と場所を RefLibPaths 追加できます。 これを行うには、次の手順を実行します。

    1. [スタート] をクリックし、[ 実行] をクリックします。

    2. [名前] ボックスに「regedit」と入力し、[OK] をクリックします。

    3. [レジストリ エディター] ウィンドウで、次のレジストリ キーを見つけます。

      Access 2007: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Access

      Access 2003: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Access

      Access 2002: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\10.0\Access

      Access 2000: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\9.0\Access

      Access 97: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\8.0\Access

    4. Access レジストリ キーを右クリックし、[新規] をポイントし、[キー] をクリックします。

    5. 新しく作成したキー RefLibPathsに という名前を付けます。

    6. [ RefLibPaths] をクリックします。

    7. 右側のウィンドウ内の任意の場所を右クリックし、[ 文字列値] をクリックします。

    8. VBA 参照と同じ名前を使用して、新しく作成された String 値に名前を付けます。

    9. 手順 8 で作成した String 値を右クリックし、[ 変更] をクリックします。

    10. [ 文字列の編集 ] ダイアログ ボックスで、VBA の参照に対応するために読み込む必要があるファイルの場所を入力します。

      レジストリ値の名前は、ファイル名に拡張子を加えた名前にする必要があります。 場所 (値データ) は、パスにファイル名を加えたものにする必要があります。 たとえば、Northwind サンプル データベースへの参照を設定した場合、次の値を追加できます。

      • 値の名前: Northwind.mdb
      • 値データ: C:\Program Files\Microsoft Office\Office11\Samples\Northwind.mdb
    11. 手順 7 から手順 10 を繰り返して、名前を追加し、適切なアドインまたは適切なライブラリの場所を String 値として追加します。

    12. [ファイル] メニューの [終了] をクリックします。

  • RefLibPaths レジストリ キーが存在しないか、正しい参照が含まれていない場合、Access はSearchPathAPI を使用して参照ファイルを検索します。 次の検索が実行されます。

    検索領域 説明
    アプリケーション ディレクトリ Msaccess.exe の場所。
    現在のディレクトリ [ファイル] メニューの [開く] をクリックした場合に表示されるディレクトリ。
    System Directory Windows フォルダーまたは WINNT フォルダーにある System フォルダーと System32 フォルダー。
    Windir オペレーティング システム ファイルが実行されるフォルダー。 これは通常、Windows フォルダーまたは WINNT フォルダーです。
    PATH 環境変数 このシステム変数には、システムから直接アクセスできるフォルダーの一覧が含まれています。 Microsoft Windows NT 4.0: コントロール パネルで、[システム] をダブルクリックし、[環境] タブをクリックします。PATH 変数は、システム変数の一覧にあります。 Microsoft Windows 2000、Microsoft Windows XP、および Microsoft Windows Server 2003: コントロール パネルで、[システム] をダブルクリックし、[詳細設定] タブをクリックし、[環境変数] をクリックします。 PATH は 、システム変数 の一覧にあります。 Microsoft Windows Vista: コントロール パネルで、[システムとメンテナンス] 項目を開きます。 [ システム] をクリックし、[ システム設定の詳細設定] をクリックし、[ 詳細設定 ] タブをクリックして、[ 環境変数] をクリックします。 PATH は システム変数 の一覧にあります
    ファイル ディレクトリ .mdb ファイル、.mde ファイル、.adp ファイル、または .ade ファイル、および任意のサブフォルダーを含むフォルダー。

注:

参照するファイルが RefLibPaths 、テーブルに記載されている任意のディレクトリにある場合、Access ではレジストリ キーは必要ありません。

Access で参照が見つからない場合は、プロジェクトをコンパイルするとき、またはプロシージャを実行しようとすると、次のエラー メッセージが表示されます。

Microsoft Office Access データベースまたはプロジェクトには、ファイル ファイル名への参照が見つからないか壊れています。
*データベースまたはプロジェクトが正しく動作するようにするには、この参照を修正する必要があります。

注:

データベースが開いている間、破損した参照ごとに 1 回前のエラー メッセージが表示されます。

たとえば、MyDatabase.mdbを開き、MyDatabase.mdbが Microsoft Calendar Control と Microsoft DAO ライブラリへの参照がない場合、2 つのエラー メッセージが表示されます。1 つは不足している参照に対して 1 つです。 参照を修正しない限り、データベースを閉じ、データベースを再度開かない限り、エラー メッセージは再び表示されません。 参照を修正してからデータベースを保存した場合、次回データベースを開くとエラー メッセージは表示されません。

BrokenReference プロパティ

Access の Application オブジェクトには、 BrokenReference 参照が破損しているかどうかを示すプロパティがあります。 プロパティをチェックするには、次のBrokenReference手順に従います。

  1. Access を開始します。

  2. Access データベースを開きます。

  3. Alt キーを押しながら F11 キーを押して、Visual Basic Editor を開きます。

  4. Ctrl + G キーを押してイミディエイト ウィンドウを開きます。

  5. [イミディエイト] ウィンドウで、次のコマンドを入力し、Enter キーを押します。

    ?Application.BrokenReference

    参照がない場合、 BrokenReference Application オブジェクトの プロパティは True を 返します。 それ以外の場合、プロパティは BrokenReferenceFalse を返します

関連情報

参照の詳細については、[ヘルプ] メニューの [Microsoft Visual Basic ヘルプ] をクリックし、[アシスタンス] ウィンドウの [検索] ボックスに「References Collection」と入力し、[検索の開始] をクリックしてトピックを表示します。

参照がない場合の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を表示してください。

283806 Visual Basic for Applications (VBA) 関数は、参照がないデータベースで中断されます