[VBA]複数の異なるOfficeバージョン環境でAccessからExcelを扱う場合における「Microsoft Excel *.* Object Library」参照不可問題への対応

VBA(Access)
この記事は約3分で読めます。

 

最新版の記事はこちら

 

Office 2000 以降を使用されている場合は下の内容では解決しない可能性があるので、もし解決しない場合は上記リンクの最新版記事を参照ください。

 


 

今回は、表題の通り複数の異なるOfficeバージョン環境で、AccessからExcelを扱う場合における「Microsoft Excel . Object Library」(以下、Excel)参照不可問題への対応について書いていきます。

 

Excel参照不可問題の解消の流れとしては、

  1. 参照設定しているライブラリ一覧から、参照不可になっているオブジェクトの参照を解除。
  2. 「Microsoft Excel *.* Object Library」の参照を行う。

となります。

 

1.については、References.Remove メゾットを使用することで、オブジェクトの参照を解除することができます。

 

2.については、References.AddFromFile メゾット、または、References.AddFromGuid メゾットを使用することで参照が可能となります。

 

しかしながら、References.AddFromFile メゾットの場合、引数に絶対パスを設定する必要があるので、インストール環境によっては使用できない可能性があり、必然と References.AddFromGuid メゾットを使うことになります。

 

References.AddFromGuid メゾットの引数には3つあり、全て設定します。

  1. GUID
  2. メジャーバージョン
  3. マイナーバージョン

 

メジャーバージョンとマイナーバージョンはOfficeのバージョン(Office 2007,Office 2010 等)で変わります。

GUIDはソフトウェア(Excel ,Outlook 等)で変わってきます。

 

いずれの情報も下記のプログラムで調べることが可能です。

 

今までの情報をもとに、参照不可になっているライブラリの参照を解除し、「Microsoft Excel . Object Library」の参照を行うプログラムを作成しました。

エラーが検出された場合は、エラーの内容を表示しています。

 

とりあえず動けばよいという方にはこちらの簡易版を。

 

今回はここまで。

 

---コメント---