事前バインディングのメリット

 [参照設定]ダイアログボックスで、あらかじめ外部オブジェクトを参照する事前バインディングのメリットは、固有のオブジェクト(クラス)を変数のデータ型に指定できることです。また、その結果としてコードのパフォーマンスが向上するだけではなく、実は、それよりも大きなメリットとして、可読性の高いマクロを効率良く開発できることが挙げられます。
 オブジェクトライブラリ(.OLB)には、そのアプリケーションが提供するさまざまなオブジェクトと、それらに関連するプロパティやメソッド、さらにはそのアプリケーションが提供する定義済みの定数も情報として含まれています。
 たとえば、リスト1のマクロには、Wordのアプリケーションウィンドウを最小表示する以下のステートメントがあります。

objWord.WindowState = wdWindowStateMinimize
 この「wdWindowStateMinimize」は、Word VBAの組み込み定数で、Excel VBAにとってはまったく意味のない用語です。したがって、本来ならばこのステートメントはエラーを返すはずですが、あらかじめWordのオブジェクトライブラリを参照設定しているため、このような記述が許されるのです。もし、Wordのオブジェクトライブラリを参照していなければ、Word VBAの組み込み定数は使えませんので以下のように記述しなければなりません。

objWord.WindowState = 2
 または次のように自分で定数を定義する必要があります。

Const wdWindowStateMinimize As Integer = 2
objWord.WindowState = wdWindowStateMinimize
 したがって、オブジェクトライブラリが参照できないような特殊なケースを除けば、私たちは基本的に事前バインディングを使うべきであると言えるでしょう。
 また、事前バインディングであれば、外部オブジェクトであってもオブジェクトブラウザやヘルプをホストアプリケーション(ここではExcel 2000)同様に使うことができます。さらには、「自動メンバ表示」などのコーディングを支援するコマンドまで利用できるのです(図2)。

図2:自動メンバ表示