即効テクニック |
●概要● 各ライブラリへの参照設定を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 UniqueIdentifier)を使用して参照設定を行います。もう一つはAddFromFileメソッドで、ライブラリのフルパスを指定することで参照設定を行います。 また、すでに参照設定されている場合を考慮して、エラー番号32813をトラップするようにしておきます。 今回はファイルから参照設定する方法を使用しています。特にライブラリのバージョンが分からない場合や、ファイル名が分かっている場合にはこちらのメソッドを使用するのが良いでしょう。 このサンプル関数をAutoExecマクロで実行すれば、常に必要なライブラリへの参照設定を自動で行うことが出来るようになります。 また、Access2000の場合はデフォルトでDAOやADOXへの参照設定がなされていませんので、Accessの知識の無いエンドユーザーにDAOを使用したMDBを配布する場合や、常にExcel等の別のアプリケーションへの参照設定を行いたい場合には参考になると思います。 ●注意● 今回使用したサンプルでは、すべてのライブラリがデフォルトパスにインストールされていると仮定して処理しています。インストールパスを変更していた場合には、各ライブラリのパスが変わってきますので注意して下さい。 また、今回のライブラリはOffice2000環境のものですので、Office97以前の環境の場合やOffice2000環境でもインストールパスを変更している場合は、以下の手順でライブラリのフルパスを確認して下さい。※ パスが長い場合、全て表示されないことがあります。その場合には判明している部分のパスを手がかりに、エクスプローラ等でパスを確認して下さい。 別掲「タイプライブラリのGUIDやバージョンを取得する」で説明されている方法でも、ライブラリファイルのフルパスを確認できます。
- メニューの[ツール]−[マクロ]−[Visual Basic Editor]からVBEを起動する。
- [ツール]−[参照設定]をたどり、参照設定ダイアログを開く
- 調べたいライブラリを選択すると、ダイアログ下部の[場所]にライブラリ のフルパスが表示される