HOME > 即効テクニック > AccessVBA > Access設定 > 参照設定を自動的に行う

即効テクニック

Access設定

参照設定を自動的に行う

(Access 2000/2002)
●概要●
各ライブラリへの参照設定をVBAで行う方法を説明します。

●準備●
(1) 新規標準モジュールを用意し、以下のプロシージャを記述します。

●サンプルコード●
'自動参照設定
Public Function SetGUID()
    On Error GoTo Err_Check:
    Dim Ref     As Reference

    'ライブラリのGUID設定
    'Microsoft DAO 3.6 Objects Library (DAO)
    Const strDAO     As String = "{00025E01-0000-0000-C000-000000000046}"

    'ADO Ext. 2.1 for DDL And Security (ADOX)
    Const strADOX    As String = "{00000600-0000-0010-8000-00AA006D2EA4}"

    'Microsoft ActiveX Data Objects Library 2.1 (ADO)
    Const strADO     As String = "{00000201-0000-0010-8000-00AA006D2EA4}"

    'Microsoft Scripting Runtime (WSH, FileSystemObject)
    Const strScript  As String = "{420B2830-E718-11CF-893D-00A0C9054228}"

    'Microsoft Excel 9.0 Objects Library (Excel2000)
    Const strExcel   As String = "{00020813-0000-0000-C000-000000000046}"

    'Microsoft Word 9.0 Objects Library (Word2000)
    Const strWord    As String = "{00020905-0000-0000-C000-000000000046}"

    'Microsoft Outlook 9.0 Objects Library (Outlook2000)
    Const strOutlook As String = "{00062FFF-0000-0000-C000-000000000046}"

    '参照設定
    Set Ref = References.AddFromGuid(strDAO, 5, 0)
    Set Ref = References.AddFromGuid(strADOX, 2, 1)
    Set Ref = References.AddFromGuid(strADO, 2, 1)
    Set Ref = References.AddFromGuid(strScript, 1, 0)
    Set Ref = References.AddFromGuid(strExcel, 1, 3)
    Set Ref = References.AddFromGuid(strWord, 8, 1)
    Set Ref = References.AddFromGuid(strOutlook, 9, 0)

Func_Exit:
    Set Ref = Nothing
    Exit Function

Err_Check:
    If Err.Number = 32813 Then
        Resume Next
    Else
        MsgBox "Error Number : " & Err.Number & vbCrLf & Err.Description
        GoTo Func_Exit:
    End If
End Function

'実行プロシージャ
Private Sub SetRef()
    Call SetGUID
End Sub

●動作確認●
それぞれのライブラリへの参照設定が解除された状態で、実行プロシージャSetRefを実行して下さい。

●詳細●
  • VBAにて参照設定を行うためにはReferencesコレクション中のReferenceオブジェクトを使用します。
  • Referenceオブジェクトでは、実際に参照設定を行うための方法が2つ用意されています。
  • 1つは今回使用したAddFromGUIDメソッドで、ライブラリのGUID (GloballyUnique Identifier)を使用して参照設定を行います。もう一つはAddFromFileメソッドで、ライブラリのフルパスを指定することで参照設定を行います。
  • ライブラリのフルパスは、環境によって違う可能性がありますので、今回はAddFromGUIDを使用しての参照設定を行っています。
  • すでに参照設定されている場合を考慮して、エラー番号32813をトラップするようにしておきます。
このサンプル関数をAutoExecマクロで実行すれば、常に必要なライブラリへの参照設定を自動で行うことが出来るようになります。 また、Access2000の場合はデフォルトでDAOやADOXへの参照設定がなされていませんので、Accessの知識の無いエンドユーザーにDAOを使用したMDBを配布する場合や、常にExcel等の別のアプリケーションへの参照設定を行いたい場合には参考になると思います。 ●注意● サンプルでは、すべてOffice2000アプリケーションのGUIDを参照していますが、もちろんOffice97環境でも同じ処理は可能ですし、例として挙げていない他のライブラリへの参照設定も可能です。 その場合には、別項「ライブラリのGUIDやバージョンを取得する」を参照して、各ライブラリのGUID・メジャーバージョン・マイナーバージョンを調べて下さい。 タイプライブラリのGUIDやバージョンを取得する