VBA 早期綁定與後期綁定



關於綁定 Binding是一個英文單字,意思為綁定。
當一個物件被指派給一個物件變數時,就會發生一個稱為綁定的過程。
有兩種方法,早期綁定和後期綁定(也稱為延遲綁定),
而綁定具體取決於它們的編寫方式。

關於早期綁定和後期綁定概念
可參考微軟網頁
https://learn.microsoft.com/zh-tw/dotnet/visual-basic/programming-guide/language-features/early-late-binding/


目錄

{tocify} $title={目錄} 


早期綁定

當物件指派給宣告為特定物件類型的變數時,物件會被預先綁定(在編譯時)。
對於早期綁定對象,在應用程式運行之前,
編譯器執行記憶體分配和其他最佳化。
然而,對於外部對象,需要參考設定。


早期綁定的優點

在撰寫程式時盡可能使用早期綁定物件。
這允許編譯器執行重要的最佳化,使應用程式能更有效率。
早期綁定物件的處理速度比後期綁定物件快。
因為它清楚地表明正在使用什麼樣的物件,這使得程式碼更具可讀性並且更易於維護。
另一個好處是啟用了自動程式碼完成,因此可以看到屬性和方法的清單。

例如要使用 FSO (FileSystemObject)物件時,可從VBE編譯器的工具功能表,
選擇設定引用項目,選擇Miscrosoft Scripting Runtime,  按下確定即可使用。

關於FSO物件




    由於設定引用FSO物件,因此在使用時,使用New 物件,
    也因為啟用了自動程式碼完成,因此可看到屬性和方法的清單。





上述程式碼可撰寫為

範例

'第一種寫法
Dim myFSO As New FileSystemObject
    
'第二種寫法
Dim myFSO As FileSystemObject
Set myFSO = New FileSystemObject


後期綁定

當物件被指派給宣告為 Object 類型的變數時,該物件會被延遲綁定(在執行時)。
這種類型的物件可以保存對任何物件的引用,但是它幾乎沒有早期綁定物件的優點。


如果FSO物件要使用後期綁定,則需使用CreateObject函數進行綁定。




範例

Dim myFSO As Object
Set myFSO = CreateObject("Scripting.FileSystemObject")



簡單的說
宣告變數的型態,如果是Object就是後期綁定,如果是特定物件型態就是早期綁定。
張貼留言 (0)
較新的 較舊