事前バインディングと実行時バインディングの違い、切替
バインディングについて、以下の通り、比較してみました。
バインディング | 使用方法 | 特徴 |
事前バインディング | 参照設定する必要あり | 処理速度が少し早い インテリセンスが利用できる 固有のオブジェクト型が使用可能 |
実行時バインディング | CreateObject関数を使用 | 他のPCで動作不可の可能性が低い |
サンプルマクロは、以下です。事前バインディングと実行時バインディングの違いと切替方法を示しています。
' 事前バインディングと実行時バインディングの違い、切替
' 開発時「事前バインディング」、配布時は「実行時バインディング」など
' 切替えたいときは、以下を参考にしてください。
Private Sub ChangeBinding()
' 以下の定数を、True:「事前バインディング」、False:「実行時バインディング」
#Const HAS_REF = True
#If HAS_REF Then
' 事前バインディング
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject
Dim myFiles As Files
Dim myFile As File
#Else
' 実行時バインディング
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim myFiles As Object
Dim myFile As Object
#End If
Set myFiles = FSO.GetFolder("C:\TEMP").Files
' すべてのファイル名を取得
For Each myFile In myFiles
Debug.Print myFile.Name
Next myFile
Set FSO = Nothing
End Sub