你可以把 物件變數 當成它所指的 物件 一樣處理。 你可以設定或回傳物件 的屬性 ,或使用其任何 方法。
建立一個物件變數
宣告物件變數。
將物件變數指派到物件上。
宣告一個物件變數
使用 Dim 陳述式或其他宣告語句 (Public、 Private、 Static) 來宣告物件變數。 指向物件的變數必須是變體(Variant)、物件或特定類型的物件。 例如,以下宣告是有效的:
' Declare MyObject as Variant data type.
Dim MyObject
' Declare MyObject as Object data type.
Dim MyObject As Object
' Declare MyObject as Font type.
Dim MyObject As Font
注意事項
如果你使用物件變數但未先宣告,該物件變數的資料 型 態預設為 Variant 。
當特定物件類型直到程序執行時才知道,你可以宣告帶有 Object 資料型別的物件變數。 使用 Object 資料型別來建立對任意物件的通用參考。
如果你知道特定的物件類型,應該將物件變數宣告為該物件類型。 例如,如果應用程式包含範例物件類型,你可以透過以下任一語句宣告該物件的物件變數:
Dim MyObject As Object ' Declared as generic object.
Dim MyObject As Sample ' Declared only as Sample object.
宣告特定物件類型可提供自動型別檢查、更快的程式碼及提升的可讀性。
將物件變數指派給物件
使用 Set 語句將物件指派給物件變數。 你可以指派 物件表達式 或 Nothing。 例如,以下物件變數指派是有效的。
Set MyObject = YourObject ' Assign object reference.
Set MyObject = Nothing ' Discontinue association.
你可以結合宣告物件變數和指派物件,方法是用 Set 語句搭配 New關鍵字。 例如:
Set MyObject = New Object ' Create and Assign
將物件變數設為 Nothing 會中斷該物件變數與任何特定物件的關聯。 這樣可以避免你不小心因為改變變數而改變物件。 關閉相關物件後,物件變數總是設為 Nothing ,這樣你可以測試該物件變數是否指向有效物件。 例如:
If Not MyObject Is Nothing Then
' Variable refers to valid object.
. . .
End If
當然,這個測試永遠無法絕對確定使用者是否關閉了包含物件變數所指物件的應用程式。
參考物件目前的實例
使用 Me 關鍵字來指代目前執行程式碼的物件實例。 所有與目前物件相關聯的程序都能存取稱為 Me 的物件。 使用 Me 特別適合將物件目前實例的資訊傳遞給其他模組中的程序。 例如,假設你在一個模組中有以下程序:
Sub ChangeObjectColor(MyObjectName As Object)
MyObjectName.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
End Sub
你可以呼叫這個程序,並透過以下陳述傳遞該物件目前的實例作為參數:
ChangeObjectColor Me
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。