Set 陳述式

將物件參考指派給 變數 或 屬性。

語法

Setobjectvar= {[ 新 ] objectexpression | Nothing }

Set 語句語法包含以下部分:

部分 描述
Objectvar 此為必要動作。 變數或屬性名稱;遵循標準變數命名規則。
新增 選用。 新通常在宣告時使用,以啟用隱式物件建立。 當 New 與 Set 一起使用時,會建立一個新的 類別實例。 如果 objectvar 包含物件的參考,當新的物件被指派時,該參考會被釋放。 新關鍵字無法用來建立任何內在資料型別的新實例,也無法用來建立相依物件。
物件表達 此為必要動作。 表達式包含物件名稱、另一個宣告的相同物件型態變數,或一個回傳相同物件型別物件的函式或方法。
Nothing 選用。 停止將 objectvar 與任何特定物件關聯。 將 Nothing 指派給 objectvar 會釋放與先前物件相關的所有系統與記憶體資源,當沒有其他變數會被引用時。

註解

要有效, objectvar 必須是與被指派物件相容的物件類型。

Dim、Private、Public、ReDim 和 Static 這些陳述式只宣告指向物件的變數。 在你使用 Set 陳述來指派特定物件之前,不會直接參考實際的物件。

以下範例說明如何使用 Dim 宣告一個型別Form1為 的陣列。 實際上沒有實 Form1 例存在。 接著 Set 將新的 變數實例Form1myChildForms指派參考。 這類程式碼可用於在 MDI 應用程式中建立子表單。

Dim myChildForms(1 to 4) As Form1 
Set myChildForms(1) = New Form1 
Set myChildForms(2) = New Form1 
Set myChildForms(3) = New Form1 
Set myChildForms(4) = New Form1 

一般來說,當你使用 Set 將物件參考指派給變數時,該變數不會產生物件的副本。 取而代之的是建立對該物件的參考。 多個 物件變數 可以指向同一個物件。 由於這些變數是物件的參考,而非物件的複製品,物件的任何變更都會反映在所有指向它的變數中。 然而,當你在 Set 陳述式中使用 New 關鍵字時,實際上是在建立物件的實例。

範例

此範例使用 Set 陳述式來指派物件參照給變數。 YourObject 被假設為具有 Text 屬性的有效物件。

Dim YourObject, MyObject, MyStr 
Set MyObject = YourObject    ' Assign object reference. 
' MyObject and YourObject refer to the same object. 
YourObject.Text = "Hello World"    ' Initialize property. 
MyStr = MyObject.Text    ' Returns "Hello World". 
 
' Discontinue association. MyObject no longer refers to YourObject. 
Set MyObject = Nothing    ' Release the object. 

另請參閱

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。