参照設定を自動的に行う (AddFromFileメソッド)
  各ライブラリへの参照設定をVBAで行う方法を説明します。

● 準備 ●

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


● サンプル ●

Public Function SetFile()
    On Error GoTo Err_Check:
    Dim Ref     As Reference

    'ライブラリのフルパス設定
    'Microsoft DAO 3.6 Objects Library (DAO)
    Const strDAO     As String = _
    "C:\Program Files\Common Files\Microsoft Shared\Dao\DAO360.dll"

    'ADO Ext. 2.1 for DDL And Security (ADOX)
    Const strADOX    As String = _
    "C:\Program Files\Common Files\System\Ado\MSADOX.dll"

    'Microsoft ActiveX Data Objects Library 2.1 (ADO)
    Const strADO     As String = _
    "C:\Program Files\Common Files\System\Ado\msado15.dll"

    'Microsoft Scripting Runtime (WSH, FileSystemObject)
    Const strScript  As String = "C:\Windows\System\SCRRUN.dll"

    'Microsoft Excel 9.0 Objects Library (Excel2000)
    Const strExcel   As String = _
    "C:\Program Files\Microsoft Office\Office\EXCEL9.OLB"

    'Microsoft Word 9.0 Objects Library (Word2000)
    Const strWord    As String = _
    "C:\Program Files\Microsoft Office\Office\MSWORD9.OLB"

    'Microsoft Outlook 9.0 Objects Library (Outlook2000)
    Const strOutlook As String = _
    "C:\Program Files\Microsoft Office\Office\MSOUTL9.OLB"


    '参照設定
    Set Ref = References.AddFromFile(strDAO)
    Set Ref = References.AddFromFile(strADOX)
    Set Ref = References.AddFromFile(strADO)
    Set Ref = References.AddFromFile(strScript)
    Set Ref = References.AddFromFile(strExcel)
    Set Ref = References.AddFromFile(strWord)
    Set Ref = References.AddFromFile(strOutlook)

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 SetRefFromFile()
    Call SetFile
End Sub


● 動作確認 ●

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


● 詳細 ●

  VBAにて参照設定を行うためにはReferencesコレクション中のReferenceオブ
ジェクトを使用します。

  Referenceオブジェクトでは、実際に参照設定を行うための方法が2つ用意さ
れています。
  1つはAddFromGUIDメソッドで、ライブラリのGUID (Globally Unique
Identifier)を使用して参照設定を行います。もう一つはAddFromFileメソッド
で、ライブラリのフルパスを指定することで参照設定を行います。
  また、すでに参照設定されている場合を考慮して、エラー番号32813をト
ラップするようにしておきます。

  今回はファイルから参照設定する方法を使用しています。特にライブラリの
バージョンが分からない場合や、ファイル名が分かっている場合にはこちらの
メソッドを使用するのが良いでしょう。

  このサンプル関数をAutoExecマクロで実行すれば、常に必要なライブラリへ
の参照設定を自動で行うことが出来るようになります。
  また、Access2000の場合はデフォルトでDAOやADOXへの参照設定がなされて
いませんので、Accessの知識の無いエンドユーザーにDAOを使用したMDBを配布
する場合や、常にExcel等の別のアプリケーションへの参照設定を行いたい場
合には参考になると思います。


● 補足説明 ●

  今回使用したサンプルでは、すべてのライブラリがデフォルトパスにインス
トールされていると仮定して処理しています。インストールパスを変更してい
た場合には、各ライブラリのパスが変わってきますので注意して下さい。

  また、今回のライブラリはOffice2000環境のものですので、Office97以前の
環境の場合やOffice2000環境でもインストールパスを変更している場合は、以
下の手順でライブラリのフルパスを確認して下さい。

(1) メニューの[ツール]−[マクロ]−[Visual Basic Editor]からVBEを起動する。
(2) [ツール]−[参照設定]をたどり、参照設定ダイアログを開く
(3) 調べたいライブラリを選択すると、ダイアログ下部の[場所]にライブラリ
    のフルパスが表示される
    ※ パスが長い場合、全て表示されないことがあります。
       その場合には判明している部分のパスを手がかりに、エクスプローラ
       等でパスを確認して下さい。

  別掲「タイプライブラリのGUIDやバージョンを取得する」で説明されている
方法でも、ライブラリファイルのフルパスを確認できます。

Access97/2000



戻る


Excel Word Access VBA! モーグ