【Excel】ライブラリ参照

Excelでオブジェクトを変数宣言するには
遅延バインディングと事前バインディングの2種類の方法がある。

実装の違い(例として、FileSystemObjectを利用)

  • 遅延バインディング
  • Dim objFSO As Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
  • 事前バインディング
  • 「ツール」→「参照設定」で
    「Microsoft Scripting Runtime」にチェックを付ける。

    Dim objFSO As New FileSystemObject
    または、
    Dim objFSO As FileSystemObject
    Set objFSO = New FileSystemObject
    

一言で言えば、変数宣言の型が
遅延バインディングはObject型
事前バインディングは特定のオブジェクト型
となっている。

  • 遅延バインディング(実行時バインディング)
  • オブジェクトが Object 型として宣言された変数に代入する場合、
    遅延(実行時)にバインディングされる。
    この型のオブジェクトは、任意のオブジェクトへの参照を保持できるが、
    事前バインディングされたオブジェクトの利点をほとんど持たない。

  • 事前バインディング
  • 特定のオブジェクト型として宣言された変数に代入する場合、
    オブジェクトは事前(コンパイル時に)バインディングされる。
    事前バインディングされたオブジェクトでは、アプリケーションが実行される前に、
    コンパイラによってメモリの割り当てとその他の最適化が実行される。
    また、自動クイックヒントが表示されるようになる。