燈明ブログ

現状は小池啓仁の応援ブログ

事前バインディングと実行時バインディングの違い

Dim xlsApp As Excel.Application '事前バインディング変数
Dim xlsApp As Object '実行時バインディング変数

事前バインディング変数とは、タイプライブラリを参照して、そのオブジェクトタイプ(型)で宣言する。
実行時バインディング変数とは、Object型で宣言する。


事前バインディングとは、オブジェクトタイプ(型)で宣言した時点でオブジェクトがバインドされる。
実行時バインディングとは、実行した時点でオブジェクトがバインドされる。


事前バインディング(アーリーバインディング)の変数を使うオブジェクトの参照の方が、実行時バインディング(レイトバインディング)の変数を使うオブジェクトの参照よりも処理が高速になる。


また、コーディング段階で、オブジェクトで使われているプロパティやメソッドの構文等が自動メンバ表示されて、誤りがあるとエラー表示される。


歴史的には、実行時バインディングの方が先で、後からの実行速度や自動メンバ表示の機能改善された事前バインディングの方を使うのが推奨される。


しかし、バインドするCOMのインターフェイスが変更される可能のある場合や一つのObject型変数を違うオブジェクトで使い回しするときなどは、実行時バインディングも使われる。