CreateObject 函數

附註: 如果 MicrosoftJet 運算式服務是在沙箱模式中執行,則本主題中所述的函數、方法、物件或屬性會停用,這可防止評估可能不安全的運算式。 有關沙箱模式的詳細資訊,在 「協助」中搜尋「沙箱模式」。

建立並傳回 ActiveX 物件的參照。

語法

CreateObject ( class [, servername] )

CreateObject 函數語法具有這些引數:

引數

描述

類別

必要。 Variant (字串) 。 要建立之物件的應用程式名稱和類別。

servername

選用。 Variant (字串) 。 要建立物件的網路伺服器名稱。 如果 servername 是空字串 ("") ,則使用本地電腦。


課程引數使用語法appname。objecttype, 並包含以下各部分:

部分

描述

appname

必要。 Variant (字串) 。 提供物件的應用程式名稱。

objecttype

必要。 Variant (字串) 。 要建立 類別 的類型或物件。


註解

每個支援自動化的應用程式都至少提供一種類型的物件。 例如,文書處理應用程式可能會提供 應用程式 物件、 物件和 工具列 物件。

若要建立 ActiveX 物件,請指派 CreateObject 傳回的物件給 物件變數:

附註: 下列範例示範如何在 Visual Basic for Applications (VBA) 模組中使用此函數。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

在此範例中,我們將從 Access 資料庫內自動化 Excel 試算表物件。 此程式碼會啟動應用程式來建立物件,在此例中為 Microsoft Excel 試算表。 物件建立之後,您可以使用您定義的物件變數,在程式碼中參照該物件。 在下列範例中,您可以使用物件變數 、 ExcelSheet和其他 Excel 物件存取新物件的屬性 Application 方法,包括 Application 物件 Cells 集合。

' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True
' Place some text in the first cell of the sheet.
ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1"
' Save the sheet to C:\test.xls directory.
ExcelSheet.SaveAs "C:\TEST.XLS"
' Close Excel with the Quit method on the Application object.
ExcelSheet.Application.Quit
' Release the object variable.
Set ExcelSheet = Nothing

使用 As Object 子句宣告物件變數時,會建立可以包含任何類型的物件的參照的變數。 不過,透過該變數存取物件會延遲;也就是說,當您的程式執行時,即會發生綁定。 若要建立導致早期結合的物件變數,也就是說,在編譯器時進行綁定,請宣告具有特定類別識別碼的物件變數。 例如,您可以宣告及建立下列 Excel 參照:

Dim xlApp As Excel.Application 
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.WorkSheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

透過早期界限變數的參照可以提供更好的效果,但只能包含參照 類別 指定之 宣告。

您可以將 CreateObject 函數傳回的物件傳遞至預期做為引數的函數。 例如,下列程式碼會建立並傳遞 Excel.Application 物件的參照:

Call MySub (CreateObject("Excel.Application"))

您可以將電腦名稱稱傳遞至CreateObject的伺服器名稱引數,在遠端網路電腦上建立物件。 該名稱與共享名稱的 「電腦名稱稱」部分相同:針對名為「\\MyServer\Public」的共用, 伺服器名稱 為「MyServer」。

附註:  請參閱 COM 檔 (請參閱 Microsoft Developer Network) ,以取得在遠端網路電腦上顯示應用程式的其他資訊。 您可能需要新增應用程式的登錄機碼。

下列程式碼會返回在名為 MyServer的遠端電腦上執行之 Excel 實例的版本#x0:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

如果遠端伺服器不存在或無法使用,則會發生執行階段錯誤。

附註:  當物件沒有目前的實例時,請使用CreateObject。 如果物件實例已在執行中,會啟動新實例,並建立指定類型的物件。 若要使用目前的實例,或啟動應用程式並載入檔案,請使用 GetObject 函數。

如果物件已自行註冊為單一實例物件,則無論 執行 CreateObject 多少次,都只會建立一個物件實例。

範例

此範例使用 CreateObject 函數 來設定參照 (

xlApp

) Excel。 它會使用參照來存取 Excel 的 Visible 屬性,然後使用 Excel 結束 方法關閉它。 最後,會釋出參照本身。

Dim xlApp As Object    ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application")
' You may have to set Visible property to True
' if you want to see the application.
xlApp.Visible = True
' Use xlApp to access Microsoft Excel's
' other objects.
xlApp.Quit ' When you finish, use the Quit method to close
Set xlApp = Nothing ' the application, then release the reference.

需要更多協助?

增進您的 Office 技巧
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×